模型上下文协议服务器

一个演示项目,用于实现具有模块化结构的模型上下文协议(MCP)服务器,支持多种工具和传输方法。

  • by aRaafat21
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aRaafat21/mcp_servers_demo

使用说明

MCP服务器演示

一个实施模型上下文协议(MCP)服务器的演示项目,该服务器采用模块化结构组织了多种工具。

概述

这个项目展示了如何使用各种工具创建一个具备多种功能的MCP服务器:

  • 一个简单的回显工具直接集成在主模块中
  • 专用模块中的翻译工具
  • 带CRUD操作的笔记资源管理

该服务器支持两者(或:该服务器同时支持……和……) stdio 并且 streamable-http 交通。

项目结构

mcp_servers_demo/
│
├── main.py                # Main MCP server implementation
├── translator/            # Translator tools module
│   ├── __init__.py        # Module exports
│   └── translator_tool.py # Translator tool implementation
├── resources/             # Resources module
│   ├── __init__.py        # Module exports
│   └── note_resource.py   # Notes resource implementation
├── prompts/               # Prompts module
│   ├── __init__.py        # Module exports
│   ├── note_prompts.py    # Notes resource prompts
│   └── translator_prompts.py # Translator tool prompts
├── pyproject.toml         # Project metadata and dependencies
├── README.md              # This file
├── USAGE.md               # Usage guide with examples
├── RESOURCES.md           # Resources documentation
└── PROMPTS.md             # Prompts documentation

可用工具

回声工具

  • echo回传提供的信息

翻译工具

  • translate在不同语言之间翻译文本
  • list_supported_languages列出所有支持的翻译语言

笔记资源工具

  • list_notes列出所有笔记,可选择按标签过滤
  • get_note通过ID获取特定笔记
  • get_note_by_title通过标题查找笔记(精确匹配或部分匹配)
  • create_note创建一个新笔记
  • update_note更新现有笔记
  • delete_note删除一条笔记

安装

这个项目使用了 uv 用于Python包管理。

# Create a virtual environment
uv venv

# Activate the virtual environment
source .venv/bin/activate

# Install dependencies
uv pip install -e .

运行服务器

服务器支持多种传输方法:

stdio 传输(默认)

uv run main.py

可流式传输的HTTP传输

MCP_TRANSPORT=streamable-http uv run main.py

传输配置

运输方式由……决定 MCP_TRANSPORT 环境变量:

  • stdio使用标准输入/输出的默认传输方式
  • streamable-http基于HTTP的传输

MCP资源公司

此项目展示了使用带有标签的Notes资源类型来存储和检索文本笔记的MCP资源。

见 RESOURCES.md 翻译为中文是:“资源文件.md” 关于资源如何实施和使用,详见以下详细信息。

MCP 提示/引导

该项目还展示了使用MCP提示符来增强人工智能与工具之间的交互。提示符为人工智能在使用特定工具时如何格式化请求和响应提供了指导。

我们在整个项目中为各种工具实现了提示功能:

  1. **翻译提示(或:翻译器提示)**翻译提示和语言列表工具
  2. “Note Resource Prompts” 可以翻译为“笔记资源提示”或“备注资源提示”,具体取决于上下文和使用场景。如果是在软件或应用程序中提到,可能指的是提供关于如何使用或创建笔记资源的提示或指南笔记管理操作的提示

看 PROMPTS.md(文件名,可译为“提示.md”或保持原样,具体取决于上下文是否需要翻译文件名) 有关提示的实现和使用方法的详细信息。

未来改进方向

  • 与Claude桌面版集成(已配置)

发展

遵循PEP8规范进行代码风格编写。

文档

如需了解更多关于MCP的信息,请查阅官方文档: