Pho MCP服务器
使用GraphQL和NestJS进行房地产数据管理的模型上下文协议(MCP)服务器。
特性
- 基于GraphQL的数据访问,使用自动生成的TypeScript SDK
- 用于物业搜索、市场分析和合作伙伴管理的MCP工具
- 类型安全的GraphQL操作
- 长期运行操作的进度报告
设置
先决条件
- Node.js(v18或更高版本)
- Hasura GraphQL引擎
- 已配置环境变量
安装
- 安装依赖项:
npm install- 设置环境变量(复制自
env.example):
cp env.example .env
# Edit .env with your Hasura configuration- 生成GraphQL SDK:
npm run generate发展
- 启动开发服务器:
npm run dev - 生产建设:
npm run build - 运行测试:
npm test
GraphQL SDK
该项目使用GraphQL代码生成器从GraphQL查询创建类型安全的SDK。
添加新查询
- 在中创建GraphQL查询文件
src/graphql/:
query GetMyData($where: MyTableBoolExp = {}) {
myTable(where: $where) {
id
name
# ... other fields
}
}- 重新生成SDK:
npm run generate- 在您的工具中使用生成的SDK:
import { InjectSdk, GqlSdk } from 'src/sdk/sdk.module';
@Injectable()
export class MyTool {
constructor(@InjectSdk() private readonly sdk: GqlSdk) {}
async myMethod() {
const result = await this.sdk.GetMyData({
where: { /* your conditions */ }
});
return result;
}
}可用的SDK功能
生成的SDK包括以下功能:
GetMarketStatistics-获取某个地区的市场统计数据GetPropertyViewsWithDetails-使用详细信息搜索房产GetInvestmentData-获取投资数据以供分析GetPropertySaleInfo-获取房产销售信息FindNearbyProperties-查找坐标附近的房产GetPartners-获取合作伙伴信息Test-简单测试查询
MCP工具
房产搜索
- 搜索属性:按地址、类型和其他条件搜索属性
- 市场统计:获取特定地区的市场分析
- 查找附近的房产:查找特定坐标附近的属性
合作伙伴管理
- 寻找合作伙伴:通过筛选检索合作伙伴信息
投资分析
- 建议投资区域:根据预算和标准获得投资建议
建筑
- GraphQL层:使用自动生成的SDK进行类型安全查询
- MCP层:通过模型上下文协议公开的工具
- NestJS:依赖注入和模块化架构
- Hasura:带有PostgreSQL后端的GraphQL API
环境变量
所需的环境变量:
HASURA_ENDPOINT:Hasura GraphQL端点HASURA_GRAPHQL_ADMIN_SECRET:hasura管理员密码HASURA_PORT:Hasura港(用于开发)
贡献
- 将新的GraphQL查询添加到
src/graphql/ - 跑
npm run generate更新SDK - 在中创建新的MCP工具
src/mcp/ - 使用测试您的更改
npm test
