房地产信息MCP服务器
这个项目是国土交通省的房地产信息库的API用于获取房地产信息Model Context Protocol(MCP)服务器。
📋 前提条件
在开始此项目之前,请确保已安装:
- Node.js (版本18.0.0或更高)
- pnpm (建议)或npm
- Reinfolib API 按键 (从国土交通省取得)
- GIS数据 (N02-22_Station.shp/dbf 文件,手动gis/文件夹需要放置)
🚀 快速启动
1.克隆或下载项目
# GitHubからクローンする場合
git clone https://github.com/fukunaman/reinfolib-mcp-server.git
cd reinfolib-mcp-server
# またはZIPファイルをダウンロードして展開2.安装依赖关系
# pnpmを使用(推奨)
pnpm install
# または npm を使用
npm install3.设置环境变量
在项目根目录中 .env 请创建文件并填写以下内容:
REINFOLIB_API_KEY=your_api_key_here重要: your_api_key_here 实际的Reinfolib API来修改标记元素的显示属性。
4. GIS数据文件放置
要使用车站信息检索功能,需要下载国土数值信息(铁路数据)进行配置。
- 国土数值信息(铁路数据)访问
- 下载“令和4年度”数据的“全国”版(N02-22_Station.zip)
- ZIP解压缩文件,将以下文件
gis/复制到文件夹:
- N02-22_Station.shp - N02-22_Station.dbf
# gisフォルダを作成
mkdir gis
# ダウンロードしたファイルをコピー
cp path/to/downloaded/N02-22_Station.* gis/注意:这些GIS文件容量大Git存储库中没有。请各自下载并配置。
5.构建项目
pnpm run build6.启动服务器
# 本番環境での起動
pnpm run start
# または開発環境での起動(自動リロード有効)
pnpm run dev🔧 可用命令
|命令|说明| |---------|------| | pnpm install 安装依赖关系 | pnpm run build | TypeScript打开JavaScript编译为 | pnpm run start 启动已构建的服务器 | pnpm run dev 在开发模式下启动服务器 | pnpm run clean 删除构建文件
📖 使用方法
MCP客户端连接
该服务器使用标准输入输出(stdio)MCP与客户端通信。Claude Desktop屋脊Cursor等的MCP可以从客户端连接。
Claude Desktop中的设置
Claude Desktop要在中使用此服务器,请创建配置文件:
# 設定ファイルを作成・編集
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json配置文件内容:
{
"mcpServers": {
"reinfolib-mcp-server": {
"command": "node",
"args": ["path/to/your/reinfolib-mcp-server/dist/server.js"]
}
}
}注意:
path/to/your/reinfolib-mcp-server更改为实际项目路径
设定完成后Claude Desktop中所述修改相应参数的值。
可用工具
1.不动产取引情报の検索(search_transactions)
{
"year": "2023",
"quarter": "1",
"area": "13",
"city": "13101"
}2.获取市区町村一览表(get_municipalities)
{
"prefectureCode": "13"
}3.检索地价公示信息(search_appraisals)
{
"year": "2023",
"area": "13",
"division": "00"
}4.检索地价公示点信息(search_land_price_points)
{
"z": 13,
"x": 7312,
"y": 3008,
"year": "2020"
}5.房地产价格点信息的检索(search_real_estate_price_points)
{
"z": 13,
"x": 7312,
"y": 3008,
"from": "20223",
"to": "20234"
}6.属性搜索(search_properties)
{
"prefecture": "13",
"year": "2023"
}7.获取车站代码(get_station_code)
从车站名取得车站代码。房地产交易查询 station 可用于参数。
{
"stationName": "新宿"
}8.駅情报取得(get_station_info)
从车站代码中获取车站信息(名称、坐标等)。
{
"stationCode": "003700"
}9. 駅検索 (search_stations)
用车站名和车站代码搜索车站。
{
"query": "東京"
}📁 项目结构
reinfolib-mcp-server/
├── src/
│ ├── server.ts # メインサーバー実装
│ ├── types.ts # TypeScript型定義
│ ├── config.ts # 設定ファイル(都道府県コード等)
│ ├── api/
│ │ └── reinfolib.ts # Reinfolib API ラッパー
│ └── utils/
│ └── station.ts # 駅情報関連ユーティリティ
├── gis/
│ ├── N02-22_Station.shp # 駅情報Shapefileデータ
│ └── N02-22_Station.dbf # 駅情報データベース
├── dist/ # ビルド出力ディレクトリ
├── package.json
├── tsconfig.json
├── .env # 環境変数(手動作成)
├── .gitignore # Git除外設定
├── CLAUDE.md # Claude Code用ガイダンス
└── README.md🗾 GIS关于数据
车站信息查询功能使用国土交通省国土数值信息(铁路数据):
- 数据源: 国土交通省 国土数値情報(鉄道)N02-22
- 数据格式:ESRI形状文件
- 收録駅数: 10,220駅
- 字符编码:转换JIS
车站代码格式
车站代码由6位数构成(例如:新宿站=003700,东京站=003766)。
🔑 API获取密钥的方法
- 国土交通省房地产信息库访问
- 创建帐户
- API申请、取得密钥
- 已获取API按键
.env设置为文件
🎯 使用例
从车站名检索房地产交易
// 1. 駅名から駅コードを取得
const stationCode = await getStationCode("新宿");
// 結果: "003700"
// 2. 駅コードを使って不動産取引を検索
const transactions = await searchTransactions({
year: "2023",
quarter: "1",
area: "13",
station: stationCode
});🤝 分发
错误报告、功能建议、Pull Request等,欢迎发布!
Issue 屋脊Pull Request 请随意制作。
