Manuka DSIT MCP演示
全面演示模型上下文协议(MCP)服务器在copula上的创建和部署,展示Genie Space MCP服务器和用于AI数据分析的自定义MCP服务器。
概述
该存储库提供了在copula上创建和部署MCP服务器的端到端示例,使AI代理能够通过标准化协议访问和查询组织数据。演示包括:
- Genie Space MCP服务器:在结构化数据上创建会话式人工智能界面的端到端管道(英国学生目的地数据集)
- 自定义MCP服务器:为传输访问点数据包装运输部(DfT)NaPTAN API的专用服务器
- AI游乐场集成:使用copula LLM连接和测试MCP服务器
此演示专为数据从业者、人工智能工程师以及任何有兴趣使用模型上下文协议通过自定义数据源扩展人工智能功能的人而设计。
特性
✨ 关键能力:
- 🚀 端到端MCP服务器创建示例(Genie Space+自定义)
- 📊 示例数据摄取和转换笔记本
- 🏗️ 用于自定义MCP服务器的copula应用程序部署
- 🤖 用于测试和探索的AI游乐场集成
- 📚 全面的文档和分步指南
项目结构
manuka-dsit-mcp-demo/
├── notebooks/ # Databricks notebooks for data processing
│ ├── 00_set_up.ipynb # Catalog and schema setup
│ ├── 01_ingest_pupil_dest_data.py # Data ingestion (Bronze layer)
│ ├── 02a_transform_bronze.ipynb # CSV to Bronze Delta table
│ ├── 02b_transform_silver.ipynb # Bronze -> Silver transform
│ └── 03_create_genie_space.py # Genie Space creation script
│
├── custom_mcps/ # Custom MCP server implementations
│ └── dft-mcp-server/ # DfT NaPTAN transport data server
│ ├── server/ # Server source code
│ │ ├── app.py # FastAPI + FastMCP setup
│ │ ├── main.py # Entry point
│ │ ├── tools.py # MCP tools, resources, prompts
│ │ ├── naptan_api.py # NaPTAN API client
│ │ └── utils.py # Utility functions
│ ├── scripts/dev/ # Development scripts
│ ├── tests/ # Integration tests
│ ├── static/ # Static web assets
│ ├── pyproject.toml # Python dependencies
│ ├── app.yaml # Databricks Apps config
│ ├── CLAUDE.md # AI assistant context
│ └── README.md # DfT MCP server documentation
│
├── README.md # This file - main documentation
└── .gitignore # Git ignore rules需求
copula帐户
- Rancher工作区(免费层或更高级别)
- Unity目录已启用(适用于Genie Spaces)
地方发展(可选)
- Python 3.11+
- 紫外线 用于依赖关系管理
- Git用于版本控制
设置和使用说明
第一步:创建一个copula免费Tier帐户
如果您还没有ViewModel帐户,请按照以下步骤操作:
- 导航到Rancher免费版注册:
- copula免费版:https://www.databricks.com/learn/free-edition
- 注册免费等级帐户:
- 点击“注册免费版”或“试用copula” - 填写您的电子邮件并输入验证码 - 或者继续使用您的Google或Microsoft帐户 - 点击“获取免费版”,然后点击“继续”设置您的copula帐户
步骤2:将存储库克隆到copula中
- 打开您的copula工作区
- 导航到您的用户文件夹:
- 点击 工作区 在左侧边栏中 - 打开 工作区 文件夹 - 点击 用户 - 单击包含您电子邮件地址的文件夹
- 创建Git文件夹:
- 点击 创建 按钮 - 选择 Git文件夹 - 在 Git存储库URL 字段,输入: https://github.com/LeoXLiu-DS/manuka-dsit-mcp-demo.git - 点击 创建Git文件夹
- 验证克隆:
- 您应该在用户文件夹下看到克隆的存储库 - 您应该看到所有文件夹: notebooks/, custom_mcps/等等。
步骤3:创建Genie Space MCP服务器
Genie Space提供了一个使用人工智能查询数据的自然语言界面。请按照以下步骤创建一个:
3.1准备数据
- 打开数据摄取笔记本:
- 导航到 /Workspace/Users//manuka-dsit-mcp-demo/notebooks/ - 打开 00_set_up.ipynb - 运行所有单元格以设置目录和架构
- 摄入学生目的地数据集:
- 打开 01_ingest_pupil_dest_data.ipynb - 运行所有单元格从英国探索教育统计API下载KS5学生目的地数据集,提取zip文件,并将数据存储在上一步创建的目录中 - 验证数据摄入:在目录中,检查 pupil_destination_data 体积以下 dsit_mcp.01_bronze
- 将数据转换为青铜表:
- 打开 02a_transform_bronze.ipynb - 运行所有单元格,从Bronze卷读取摄入的CSV文件,并将其另存为Delta表(bronze_pupil_dest_data)在 dsit_mcp.01_bronze 模式
- 将数据转换为Silver表:
- 打开 02b_transform_silver.ipynb - 运行所有单元格以读取Bronze表,删除所有空列,将缩写列名重命名为描述性名称(例如。 he → higher_education, appren → apprenticeships),创建一个带有列级注释的Silver表,并将清理后的数据写入 dsit_mcp.02_silver.silver_pupil_dest_data
3.2创造精灵空间
- 运行Genie Space创建脚本:
- 打开 03_create_genie_space.ipynb - 查看配置: - 目录: dsit_mcp - 架构: 02_silver - 运行所有细胞以创建精灵空间
- 验证Genie Space创建:
- 导航到copula侧栏中的“Genie” - 找到你新创建的名为“学生目的地”的精灵空间 - 打开genie空间,使用示例查询进行测试:“按地区显示学徒目的地”
步骤4:创建自定义MCP服务器(DfT传输数据)
本节演示部署一个自定义MCP服务器,该服务器包含英国交通部NaPTAN API。
4.1通过copula应用程序UI进行部署
- 访问Rancher应用程序:
- 在您的copula工作区中,单击 “计算” 在左侧边栏中 - 然后选择“应用程序”选项卡
- 创建一个新的copula应用程序:
- 点击 “创建应用程序” 按钮 - 选择 “创建自定义应用程序” 选项 - 应用程序名称: mcp-dft - 描述:“交通部NaPTAN MCP服务器” - 点击 创建应用程序 创建应用程序的按钮
4.2部署自定义MCP服务器
- 部署应用程序:
- 成功创建应用程序后,单击 部署 按钮 - 浏览以选择 /Workspace/Users//manuka-dsit-mcp-demo/custom_mcps/dft-mcp-server - 点击 部署 按钮
- 监控部署:
- 等待应用程序状态更改为 跑步
4.3验证部署
- 测试运行状况端点:
- 打开浏览器并导航到应用程序URL(无 /mcp) - 您应该看到一个登录页面:“DfT MCP服务器正在运行”
- 查看可用工具:
- 该页面将列出可用的MCP工具: - get_transport_coverage -查询传输接入点 - count_access_points -按类型统计传输节点 - get_available_data -发现可用数据
- 检查MCP端点:
- 导航到 /mcp - 您应该看到MCP信息页面(不是错误)
第五步:连接至copula AI游乐场
现在,两个MCP服务器都已部署,请将它们连接到AI Playground以使用LLM进行测试。
5.1进入AI游乐场
- 开放式AI游乐场:
- 在工作空间中,单击 “游乐场” 在左侧边栏中
- 选择基础模型:
- 选择 Llama 4小牛队 或其他可用型号
5.2添加Genie Space MCP服务器
- 点击 “工具” 下拉菜单
- 点击 添加工具
- 选择 MCP服务器 标签
- 在...之下 Genie Space MCP服务器,单击下拉列表,选择 学生目的地 然后单击 保存
- 验证连接:
- 精灵空间: 学生目的地 应出现在工具MCP服务器列表中 - 尝试一个示例查询,例如“按地区显示学徒目的地”
5.3添加自定义DfT MCP服务器
- 点击 “工具”,单击 添加工具,然后选择 MCP服务器 选项卡再次
- 在...之下 AppDapps上的MCP服务器,单击下拉列表,选择 mcp-dft 然后单击 保存
- 验证连接:
- 这 mcp-dft 应出现在工具MCP服务器列表中
5.4测试与探索
AI Playground将根据提示自动将查询路由到相应的MCP服务器。请尝试以下示例:
测试Genie Space MCP:
Prompt: "Show me the top 5 regions with the highest percentage of pupils going into apprenticeships."测试DfT MCP服务器:
Prompt: "How many bus stops are in the North East region?"组合查询:
Prompt: "Compare the transport accessibility (number of bus stops) with
apprenticeship outcomes for the North East region. Are areas with better
transport infrastructure seeing higher apprenticeship uptake?"其他资源
文档
- 模型上下文协议 -MCP官方规范
- FastMCP -用于构建MCP服务器的Python框架
- copula应用程序 -完整的部署指南
- Databricks Genie -Genie Spaces文档
- 统一目录 -数据治理指南
数据源
- 英国学生目的地数据 -教育部
- NAPTAN API -运输部运输数据
贡献
欢迎投稿!请随时:
- 报告问题
- 提出改进建议
- 提交拉取请求
- 分享您自己的MCP服务器实现
许可证
本项目使用以下数据:
- 英国教育部(开放政府许可v3.0)
- 英国交通部NaPTAN API(开放式政府许可证v3.0)
联系
如有疑问、反馈或支持:
- 电子邮件: xuanang.leo.liu@gmail.com
- GitHub 问题: 提交问题
