使用说明
虚拟MCP服务器
这个项目 FastMCP 使用框架构建的简单的元代理通信协议(MCP)服务器。服务器通过Server-Sent Events(SSE)进行通信。 echo 工具和 dummy 提供工具。
关键技术堆栈
- 快速 API:Web框架(FastMCP的基础)
- 乌维科恩:ASGI服务器(运行FastAPI应用程序)
- FastMCP:构建MCP服务器的框架(版本1.0.0)
- Docker&Docker编写:容器化和服务管理
- python:主开发语言
项目结构
.dummy_mcp_server/
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI 애플리케이션 및 MCP 서버 설정, 도구 등록
│ └── tools/
│ ├── __init__.py
│ ├── dummy.py # 'dummy' 도구 구현
│ └── echo.py # 'echo' 도구 구현
├── docker-compose.yml # Docker Compose 설정 파일
├── README.md # 이 파일
└── requirements.txt # Python 의존성 목록`
设置和运行
要求
- 码头工人
- Docker Compose
本地运行(使用Docker Compose)
-
存储库克隆 (如果已经在本地,则省略)
-
构建Docker映像并运行容器: 在项目根目录中运行以下命令:此命令将根据需要构建图像并在后台启动容器。
docker-compose up --build -d服务器在Docker容器中
0.0.0.0:8002在中运行。docker-compose.yml根据设置,主机的http://localhost:8002(或Docker主机IP的8002端口)。 -
检查日志:\
docker-compose logs -f dummy_mcp_server -
停止服务器:\
docker-compose down
n8n联动指南
dummy-mcp-server要与n8n工作流相关联,请执行以下步骤:
-
Docker网络:
dummy-mcp-server容器和n8n容器必须在同一Docker网络环境中运行,才能相互通信。- 当前
docker-compose.yml银dummy-mcp-server创建服务,如果未指定单独的网络,则连接到Docker Compose生成的默认网络。n8n容器也连接到此网络,或两个容器共享的外部网络(例如:nginx-n8n-net)。 - 如果n8n和
dummy-mcp-server相同docker-compose.yml如果在文件中定义为服务,则Docker Compose会自动将其放置在同一网络中,因此可以通过服务名称(容器名称)相互查找。
-
n8n MCP Client节点设置:
- 在n8n工作流中添加“MCP Client”节点。
- SSE 终端:输入以下URL:
http://dummy-mcp-server:8002/ssedummy-mcp-server:docker-compose.yml在中定义的服务名称。Docker内部DNS将此名称dummy-mcp-server解释为容器的IP。(如果n8n在Docker外部运行dummy-mcp-server如果只有docker在运行,localhost或者,必须使用Docker主机的IP:http://localhost:8002/sse)8002:dummy-mcp-server正在监听的端口。/sse:FastMCP库用于SSE流的默认路径。
- 认证:当前
dummy-mcp-server不使用身份验证,因此将其设置为“None”。 - 要包含的工具:可以设置为“All”,也可以根据需要选择特定工具。
依赖于Python(requirements.txt)
以下是主要依赖项列表(完整列表包括 requirements.txt 请参阅文件:
fastmcp==1.0.0
httpx>=0.27.0
uvicorn
numpy
fastapi==0.109.2
# python-dotenv (주석 처리됨)
# ... 기타 mcp 및 fastapi 의존성
提供的工具
服务器 app/main.py在中注册并提供以下两种工具:
-
dummy工具- 源文件:
app/tools/dummy.py - 说明:这是一个简单的同步工具,可将输入的字符串消息输出到控制台,并返回成功状态下收到的消息。
- 输入参数:
message(str):堆叠工具要接收的字符串。
- 返还:
{\"status\": \"success\", \"tool_message\": \"Dummy tool received: [입력된 메시지]\"}
- 源文件:
-
echo工具- 源文件:
app/tools/echo.py - 说明:演示SSE流媒体功能的示例工具。重复输入的消息3次,并在每条消息之间留出1秒的延迟,返回SSE流。
- 输入参数:
message(str):要回声的字符串。
- 返还:流响应后
{\"status\": \"Echo stream completed\"}返回。
- 源文件:
关于MCP服务器
- 姓名:虚拟MCP服务器
- 说明:FastMCP 1.0.0,带SSE、回声工具和虚拟工具。
- 主机:
0.0.0.0(在Docker容器中) - 端口:
8002(映射Docker外部和内部的相同端口) - 通信方式:服务器-发送事件(SSE)-基本端点
/sse使用。
