项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器,旨在为LLM应用提供芝加哥公立学校的上下文数据。它利用本地的SQLite数据库和LanceDB向量数据库存储学校信息,并通过标准化的MCP接口对外提供数据访问和查询能力。

主要功能点

  • 数据访问: 通过工具提供对芝加哥公立学校数据的访问,数据存储在SQLite和LanceDB数据库中。
  • 工具 (Tools):
    • 'query_schools_and_neighborhoods': 允许用户执行SQL查询,检索芝加哥公立学校及其社区信息。
    • 'query_school_websites': 允许用户根据问题查询芝加哥公立学校网站的内容,以获取相关上下文。
  • 标准MCP协议: 遵循MCP协议标准,易于与支持MCP协议的LLM客户端集成。
  • Stdio传输: 使用标准输入输出 (stdio) 作为服务器与客户端之间的通信协议。

安装步骤

  1. 获取数据库文件: 从 cps-childcare 项目获取 SQLite 数据库文件 ('cps_crawler.db') 和 LanceDB 数据库文件 ('embeddings.lancedb')。你需要自行下载并放置到合适的路径。
  2. 克隆仓库: 从 GitHub 克隆 'mcp-cps-data' 仓库到本地。
  3. 安装运行环境: 确保你的系统安装了 uv (或者 Python 和 pip,虽然仓库未明确指出依赖,但可能需要安装 'mcp-server', 'sqlite3', 'lancedb', 'sentence-transformers' 等Python库)。

服务器配置

为了让MCP客户端(例如 Claude Desktop)连接到此服务器,需要配置服务器的启动命令和参数。以下是配置示例(JSON 格式):

{
  "server_name": "mcp-cps-data",
  "command": "uv",
  "args": [
    "--directory",
    "/path/to/mcp-cps-data",  // 替换为 mcp-cps-data 仓库在您本地的实际路径
    "run",
    "mcp-cps-data",
    "--sqlite-path",
    "/path/to/cps_crawler.db",  // 替换为 cps_crawler.db 数据库文件的实际路径
    "--lancedb-path",
    "/path/to/embeddings.lancedb" // 替换为 embeddings.lancedb 数据库文件的实际路径
  ]
}

参数说明:

  • 'server_name': 服务器的名称,客户端用以识别。
  • 'command': 启动服务器的命令,这里使用 'uv'。
  • 'args': 传递给 'uv' 命令的参数列表:
    • '--directory': 指定服务器代码所在的目录。
    • 'run mcp-cps-data': 运行 'mcp-cps-data' 包。
    • '--sqlite-path': 指定 SQLite 数据库文件的路径。
    • '--lancedb-path': 指定 LanceDB 数据库文件的路径。

请务必将 '/path/to/mcp-cps-data', '/path/to/cps_crawler.db', 和 '/path/to/embeddings.lancedb' 替换为你的实际文件路径。

基本使用方法

  1. 启动服务器: 根据上述配置,在终端中使用 'uv' 命令启动 MCP 服务器。例如,你可以使用 MCP Inspector 工具来启动和调试服务器,如 README 中所示。
  2. 配置 MCP 客户端: 在支持 MCP 协议的客户端(如 Claude Desktop)中,添加上述服务器配置信息。客户端会根据配置连接到 MCP 服务器。
  3. 使用工具: 在客户端中,你可以调用服务器提供的工具。
    • 使用 'query_schools_and_neighborhoods' 工具时,你需要提供一个 SQL SELECT 查询语句作为参数,以查询学校和社区数据。
    • 使用 'query_school_websites' 工具时,你需要提供一个问题 (question) 作为参数,服务器会搜索学校网站内容并返回相关信息。

信息

分类

数据库与文件