关于 MCP Demo
MCP Demo 是一个用 Python 编写的 MCP 服务示例,面向探索数据库数据操作的开发者。它连接 PostgreSQL 管理组织和设备,并提供距离计算工具。
主要功能
- 01连接 PostgreSQL 管理组织和设备
- 02查询组织与设备
- 03按组织筛选设备
- 04计算设备与组织间距离
适用场景
- 01查询数据库中的组织和设备
- 02查看设备所属组织及距离
MCP 相关
作为 MCP 服务,它向 MCP 客户端提供组织、设备查询及距离计算工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 演示
此仓库包含一个模型上下文协议(MCP)服务的演示实现。该服务旨在管理组织和设备,计算设备与其所属组织之间的距离,并提供一组用于与数据交互的工具。
功能
- 数据库集成:连接到 PostgreSQL 数据库,以管理组织和设备。
- 距离计算:使用 Haversine 公式计算设备与其所属组织之间的距离。
- MCP 工具:提供用于获取组织、设备和计算距离的工具。
前置条件
- Python 3.12.5
- PostgreSQL 数据库
设置
-
克隆仓库:
git clone <repository-url> cd mcp-demo -
创建虚拟环境:
uv venv source .venv/bin/activate -
在
.env文件中配置环境变量:DB_NAME=mcp DB_USER=mcp_user DB_PASSWORD=pa$$word DB_HOST=localhost DB_PORT=5432 -
设置数据库:
psql -U <username> -d <database> -f tables.sql
使用方法
-
运行 MCP 服务:
uv run main.py -
使用提供的工具与服务交互:
get_organizations:从数据库获取所有组织。get_devices:从数据库获取所有设备。get_devices_by_organization:获取特定组织的设备。list_devices_with_distance:列出设备及其与所属组织之间的距离。
项目结构
main.py:MCP 服务的主入口文件。tables.sql:用于创建数据库架构并填充初始数据的 SQL 脚本。.env:用于配置数据库的环境变量。pyproject.toml:项目元数据和依赖项。
依赖项
httpx:适用于 Python 的 HTTP 客户端。mcp[cli]:用于构建服务的 MCP 框架。psycopg2:适用于 Python 的 PostgreSQL 数据库适配器。
Claude Desktop MCP 服务配置
要为此 MCP 服务项目配置 Claude Desktop,请按照以下步骤操作:
-
从官方网站在计算机上安装 Claude Desktop。
-
打开 Claude Desktop 并进入设置菜单。
-
为 MCP 服务添加新的项目配置:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json -
添加 MCP 服务
{
"mcpServers": {
"devices": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-demo",
"run",
"main.py"
],
"env": {
"DB_NAME": "mcp",
"DB_USER": "mcp_user",
"DB_PASSWORD": "pa$$word",
"DB_HOST": "localhost",
"DB_PORT": "5432"
}
}
}
}
- 运行查询,例如:
List the devices in DB and show me how far are they from their organization address. Also, add get the mac addresses of the devices.
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。