Token导航 LogoToken导航TokenDH.com
JC MCP tutorial Dec25 logo
AI代理stdio官方级别未说明来源级核验

JC MCP tutorial Dec25

MCP Server

一个教育性的最小化项目,展示了模型上下文协议(MCP)与三种不同类型服务器的交互,包括代码执行、数据库操作和文档管理。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
Jupyter Notebook代码执行数据库操作文档处理AI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

carbonjo

提供方

carbonjo

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

MCP代理教育项目

这是一个教育性的、最小的项目,它用三种不同类型的服务器演示了模型上下文协议(MCP):

  1. 代码服务器 -文件操作和代码执行
  2. 数据库服务器 -SQLite数据库操作
  3. 文档服务器 -文档管理和搜索

什么是MCP?

模型上下文协议(MCP)是一种标准化的协议,允许AI代理与各种服务和工具进行交互。它为以下内容提供了一个通用接口:

  • 工具:代理可以调用以执行操作的函数
  • 资源:代理可以访问的数据
  • 提示:可重复使用的提示模板

项目结构

.
├── servers/
│   ├── code_server.py          # Code server implementation
│   ├── database_server.py      # Database server implementation
│   └── document_server.py      # Document server implementation
├── notebooks/
│   ├── mcp_client_demo.ipynb   # Jupyter notebook with basic MCP demos
│   └── mcp_llm_agent.ipynb     # Jupyter notebook with LLM integration
├── requirements.txt            # Python dependencies
└── README.md                   # This file

设置

  1. 安装依赖项:
   pip install -r requirements.txt
  1. 使服务器脚本可执行(可选):
   chmod +x servers/*.py

运行演示

  1. 启动Jupyter笔记本:
   jupyter notebook
  1. 打开演示笔记本(按顺序):

- 从这里开始: notebooks/mcp_client_demo.ipynb -基本MCP演示 - 运行单元格 一次一个 - 等待每个单元格完成,然后运行下一个单元格 - 那就试试: notebooks/mcp_llm_agent.ipynb -高级LLM集成 - 首先需要了解基本演示

  1. 重要提示:

- 按顺序运行单元格:不要同时运行所有单元格 - 等待完成:寻找 [1], [2], [3] (单元格编号) - **[*] 意味着跑步:等待它完成 - await 在Jupyter中工作:不需要 asyncio.run() - 服务器自动启动**:无需手动启动它们

  1. 故障排除:

- 如果执行编号未显示:请参阅 NOTEBOOK_TROUBLESHOOTING.md - 如果单元格挂起:按 Ctrl+C (或 Cmd+C)中断,然后重新启动内核 - 如果连接错误:请参阅 GETTING_STARTED.md 获取详细帮助

LLM集成

该项目包括LLM集成,以创建能够理解自然语言并使用MCP工具的智能代理。支持两种方法:

方法1:Ollama(局部模型)

在没有API密钥的情况下本地运行LLM:

  1. 安装Ollama:从下载 https://ollama.ai
  2. 拉一个模型: ollama pull llama3 (或任何其他型号)
  3. 启动Ollama服务: ollama serve
  4. 在笔记本电脑中使用:The mcp_llm_agent.ipynb 笔记本电脑将自动检测并使用Ollama

方法2:基于API的模型(OpenAI和Gemini)

使用基于云的LLM API:

  1. 获取API密钥:

- 开放人工智能:从 https://platform.openai.com/api-keys - 双子座:从 https://aistudio.google.com/app/apikey

  1. 设置API密钥 (使用.env文件):

- 创建 .env 文件 在项目根目录中:

     cp .env.example .env

- 编辑 .env 文件 并添加您的密钥:

     OPENAI_API_KEY=your-openai-key-here
     GEMINI_API_KEY=your-gemini-key-here

- 备注:您只需为要使用的提供商设置密钥 - 这 .env 出于安全考虑,文件被忽略

  1. 在笔记本电脑中使用:打开 mcp_llm_agent.ipynb -密钥将从自动加载 .env

LLM代理使用示例

# Using Ollama (local)
result = await intelligent_agent(
    "List all users in the database",
    provider="ollama",
    model="llama3"
)

# Using OpenAI
result = await intelligent_agent(
    "Create a document with database statistics",
    provider="openai",
    model="gpt-4o-mini"
)

# Using Gemini
result = await intelligent_agent(
    "Write a Python function to calculate factorial",
    provider="gemini"
)

服务器详细信息

代码服务器(code_server.py)

提供以下工具:

  • read_file:读取文件内容
  • write_file:将内容写入文件
  • execute_code:执行Python代码
  • save_code_snippet:保存代码片段以供以后使用
  • list_code_snippets:列出所有已保存的代码段

资源:

  • 存储在内存中的代码片段(可通过以下方式访问 code:// URI)

数据库服务器(database_server.py)

提供以下工具:

  • execute_query:执行SQL查询(SELECT、INSERT、UPDATE、DELETE)
  • list_tables:列出所有数据库表
  • describe_table:获取表的架构信息
  • insert_user:插入新用户(方便方法)
  • get_user:通过电子邮件联系用户(便捷方式)

资源:

  • 数据库架构(db://schema)
  • 表格列表(db://tables)

注: 服务器自动创建SQLite数据库(example.db)第一次运行时使用样本数据。

文档服务器(document_server.py)

提供以下工具:

  • create_document:创建新的文本文档
  • read_document:读取文档内容
  • list_documents:列出所有可用文件
  • search_documents:在所有文档中搜索文本
  • append_to_document:将文本附加到现有文档
  • delete_document:删除文档

资源:

  • 文件存储在 documents/ 目录(可通过以下方式访问 doc:// URI)

MCP的工作原理

传输机制

MCP支持多种传输机制:

  1. 标准输入/输出 -用于此项目

- ✅ 简单:无需网络配置 - ✅ 安全:无暴露端口 - ✅ 进程管理:客户端生成服务器 - ❌ 仅限本地:无法连接到远程服务器 - ❌ 每台服务器一个客户端:每个客户端生成自己的进程

  1. HTTP/SSE(服务器发送事件) -备选方案

- ✅ 远程访问:连接到不同机器上的服务器 - ✅ 可扩展:多个客户端可以共享一台服务器 - ✅ Web集成:可以从浏览器访问 - ❌ 更复杂:需要web服务器框架 - ❌ 安全性:需要身份验证/授权

为什么选择stdio参与这个项目?

  • 教育重点:更易于理解和设置
  • 本地开发:非常适合学习和测试
  • MCP标准:MCP规范中的主要传输机制
  • 无依赖性:开箱即用

何时改用HTTP:

  • 生产部署
  • 远程服务器访问
  • 多个客户端共享一台服务器
  • Web浏览器集成

TRANSPORT_COMPARISON.md 以进行详细比较。

通信流

  1. 服务器:MCP服务器通过stdio(或HTTP)公开工具和资源
  1. 客户端:MCP客户端连接到服务器,可以:

- 列出可用工具 - 调用带有参数的工具 - 列出可用资源 - 按URI访问资源

  1. 沟通:通过stdio(或HTTP/SSE)使用JSON-RPC进行通信

示例用法

基本MCP演示(mcp_client_demo.ipynb)

基本笔记本演示:

  • 连接到每台服务器
  • 列出可用工具
  • 调用具有不同参数的工具
  • 访问资源
  • 在工作流中组合多个服务器

LLM代理演示(mcp_llm_agent.ipynb)

LLM代理笔记本演示了:

  • 使用Ollama进行局部LLM推理
  • 使用OpenAI API进行基于云的LLM
  • 使用Google Gemini API
  • 与MCP服务器的自然语言交互
  • 智能刀具选择和执行
  • 多步骤工作流自动化

教育价值

本项目说明:

  • 如何创建MCP服务器
  • 如何实施工具和资源
  • 如何将客户端连接到服务器
  • 如何同时使用多台服务器
  • 如何将LLM与MCP服务器集成
  • 如何创建理解自然语言的智能代理
  • 代理应用程序的真实模式

运输选项

当前实施:stdio

此项目中的服务器使用 stdio传输,即:

  • 设置简单
  • 安全(无网络端口)
  • 非常适合当地发展
  • 标准MCP传输

添加HTTP支持

要改用HTTP传输,请执行以下操作:

  1. 安装HTTP依赖项 (可选):
   pip install fastapi uvicorn
  1. 将服务器作为HTTP服务运行:
   python servers/code_server_http.py
  1. 通过HTTP连接客户端:
   from mcp.client.sse import sse_client
   # Use HTTP client instead of stdio_client

TRANSPORT_COMPARISON.md 有关stdio与HTTP的详细比较。

扩展项目

您可以通过以下方式扩展此项目:

  • 向现有服务器添加更多工具
  • 创建新服务器(例如,API服务器、文件系统服务器)
  • 实现远程访问的HTTP传输
  • 添加身份验证和授权
  • 实施更复杂的工作流程
  • 添加错误处理和验证
  • 为服务器创建web界面

资源

许可证

这是一个教育项目。您可以根据需要自由使用和修改。

目录标签

目录标签

Jupyter Notebook代码执行数据库操作文档处理AI代理本地部署模型上下文协议文档管理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP