模型上下文协议服务

MCP(Model Context Protocol)是一个模块化框架,用于管理、执行和监控AI模型上下文,包括LLM提示、Jupyter笔记本和Python脚本。它提供了一个FastAPI后端和一个Streamlit仪表盘前端。

  • by Chunkys0up7
  • 更新于
在 GitHub 查看 Chunkys0up7/MCP

使用说明

基本能力

产品定位

MCP是一个用于管理和执行AI模型上下文的框架,支持多种类型的模型上下文,包括LLM提示、Jupyter笔记本和Python脚本。

核心功能

  • 注册和管理不同类型的MCP(LLM提示、笔记本、脚本)
  • 执行MCP并在Web UI中查看结果
  • 监控服务器健康状况和统计信息
  • 可扩展以支持新的MCP类型

适用场景

  • AI模型开发和测试
  • 数据分析和可视化
  • 自动化脚本执行
  • 模型监控和管理

使用教程

使用依赖

  • Python 3.9+
  • 推荐创建并激活虚拟环境

安装教程

pip install -r requirements.txt

环境变量

  • 设置MCP_API_KEY用于API认证(可选,默认提供)
  • 对于LLM,如果使用Claude,设置ANTHROPIC_API_KEY

启动后端

uvicorn mcp.api.main:app --reload

启动前端

streamlit run mcp/ui/app.py

调试方式

  • 访问仪表盘:http://localhost:8501
  • 从UI创建、管理和测试MCP
  • 从侧边栏监控健康状况和统计信息

添加新的MCP

  • 在mcp/core/中实现一个新的MCP类
  • 在后端注册
  • 在mcp/ui/app.py中添加UI支持

运行测试

pytest

API文档

服务器运行后,可以访问:

  • API文档:http://localhost:8000/docs
  • Prometheus指标:http://localhost:8000/metrics
  • 健康检查:http://localhost:8000/health
  • 统计信息:http://localhost:8000/stats

安全

  • 所有端点都需要API密钥认证
  • 默认启用速率限制
  • CORS配置为仅允许特定来源
  • 所有敏感配置通过环境变量管理

监控

服务器包括:

  • Prometheus指标,用于请求计数、延迟和服务器执行
  • 结构化JSON日志
  • 健康检查端点
  • 服务器统计端点

贡献

  1. Fork仓库
  2. 创建特性分支
  3. 提交更改
  4. 推送到分支
  5. 创建Pull Request

笔记本和LLM集成的额外依赖

此项目现在需要以下额外的Python包:

  • pandas
  • numpy
  • matplotlib
  • papermill
  • nbformat
  • jupyter
  • anthropic

安装所有依赖:

pip install -r requirements.txt

使用笔记本MCP调用LLM(Claude)

示例笔记本(mcp/notebooks/example.ipynb)演示了:

  • 数据分析和绘图
  • 通过anthropic Python包调用Claude LLM

要使用LLM单元格,请确保在环境或.env文件中设置了ANTHROPIC_API_KEY。

LLM的笔记本单元格如下:

import os
import anthropic

api_key = os.getenv('ANTHROPIC_API_KEY')
if not api_key:
    raise ValueError('ANTHROPIC_API_KEY not set in environment!')

client = anthropic.Anthropic(api_key=api_key)
response = client.messages.create(
    model='claude-3-sonnet-20240229',
    max_tokens=256,
    temperature=0.7,
    messages=[
        {'role': 'user', 'content': 'Tell me a joke about data science.'}
    ]
)
print('Claude says:', response.content[0].text)