MCP HTTP服务器-Python运行时
A. Docker优化 用于Python模型上下文协议(MCP)服务器的HTTP服务器,目前具有 打字员mcp 计划提供通用的Python MCP服务器支持。
🐍 专注Python:针对Python MCP服务器进行了优化,具有自动依赖管理和虚拟环境支持。
🎯 MVP与typst mcp:目前配置为typst-mcp服务器,可轻松扩展到其他Python mcp服务器。
🚀 未来路线图:专为通用Python MCP服务器兼容性而设计,包括文件系统、web搜索和自定义服务器。
🏗️ 建筑
mcp-server-as-http-python/
├── Dockerfile # Python 3.12 optimized container
├── docker-compose.yml # Docker Compose configuration
├── docker-build.sh # Build and deployment script
├── docker-entrypoint.sh # Initialization script
├── mcp_servers.config.json # MCP server configuration
├── .env.example # Environment template
└── README.md # This file核心组件:
- 预构建二进制文件:用途
mcp-server-as-http-core二进制(基于Rust的HTTP服务器) - Python环境:Python 3.13,带pip和虚拟环境
- 动态依赖:Typst二进制和Rust工具链仅在需要时安装
- Docker优化:多阶段构建,实现最小运行时映像
🚀 快速开始
先决条件
- 码头工人 和 Docker Compose
- Git (用于存储库克隆)
选项1:Docker Compose(推荐)
# Clone repository
git clone https://github.com/yonaka15/mcp-server-as-http-python.git
cd mcp-server-as-http-python
# Copy and configure environment
cp .env.example .env
# Edit .env with your settings
# Start with Docker Compose
docker-compose up -d
# View logs
docker-compose logs -f选项2:构建脚本
# Clone repository
git clone https://github.com/yonaka15/mcp-server-as-http-python.git
cd mcp-server-as-http-python
# Copy and configure environment
cp .env.example .env
# Edit .env with your settings
# Build and run
./docker-build.sh
# Or use docker-compose via script
./docker-build.sh --use-compose选项3:手动Docker
# Build image
docker build -t mcp-http-server-python .
# Run container
docker run -d \\
--name mcp-http-server-python \\
-p 3000:3000 \\
--env-file .env \\
mcp-http-server-python⚙️ 配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_CONFIG_FILE | mcp_servers.config.json | MCP服务器配置路径 |
MCP_SERVER_NAME | typst-mcp | 从配置中使用的服务器名称 |
MCP_RUNTIME_TYPE | python | 运行时类型(此图像已修复) |
PORT | 3000 | HTTP服务器端口 |
HTTP_API_KEY | - | 用于身份验证的承载令牌 |
DISABLE_AUTH | true | 禁用身份验证(开发默认) |
WORK_DIR | /tmp/mcp-servers | MCP服务器的工作目录 |
自动MCP服务器管理
作为http核心的mcp服务器会自动处理:
- 存储库克隆:自动克隆配置的MCP服务器存储库
- 依赖安装:执行
build_command安装所需的依赖项 - 运行时管理:启动并管理MCP服务器进程
- 动态设置:无需手动安装-所有内容都通过JSON配置
这种方法在保持简单性的同时提供了最大的灵活性。
Python MCP服务器配置
typst-mcp服务器提供强大的LaTeX到typst转换功能:
{
"version": "1.0",
"servers": {
"typst-mcp": {
"repository": "https://github.com/johannesbrandenburger/typst-mcp.git",
"build_command": "pip install mcp[cli] numpy pillow",
"command": "/app/venv/bin/python3",
"args": ["server.py"],
"env": {
"PYTHONPATH": "/tmp/mcp-servers/typst-mcp",
"VIRTUAL_ENV": "/app/venv",
"PATH": "/app/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
}
}
}
}🛠️ API使用
通过身份验证
curl -X POST http://localhost:3000/api/v1 \\
-H "Authorization: Bearer your-secret-api-key" \\
-H "Content-Type: application/json" \\
-d '{"command": "{\\"jsonrpc\\": \\"2.0\\", \\"id\\": 1, \\"method\\": \\"tools/list\\", \\"params\\": {}}"}'无身份验证(默认)
开发模式与 DISABLE_AUTH=true:
curl -X POST http://localhost:3000/api/v1 \\
-H "Content-Type: application/json" \\
-d '{"command": "{\\"jsonrpc\\": \\"2.0\\", \\"id\\": 1, \\"method\\": \\"tools/list\\", \\"params\\": {}}"}'测试类型mcp-LaTeX转换
curl -X POST http://localhost:3000/api/v1 \\
-H "Content-Type: application/json" \\
-d '{"command": "{\\"jsonrpc\\": \\"2.0\\", \\"id\\": 1, \\"method\\": \\"tools/call\\", \\"params\\": {\\"name\\": \\"latex_snippet_to_typst\\", \\"arguments\\": {\\"latex_snippet\\": \\"$f \\\\in K(t^H, \\\\beta)_\\\\delta$\\"}}}"}'健康检查
curl -f http://localhost:3000/health🎯 typst-mcp功能
当前MVP的重点是 打字员mcp 服务器功能:
可用工具
list_docs_chapters():列出Typst文档中的所有章节get_docs_chapter(route):从Typst文档中检索特定章节latex_snippet_to_typst(latex_snippet):使用Pandoc将LaTeX代码转换为Typstcheck_if_snippet_is_valid_typst_syntax(typst_snippet):验证Typst代码typst_snippet_to_image(typst_snippet):将Typst代码渲染为PNG图像
工作流示例
# 1. List available tools
curl -X POST http://localhost:3000/api/v1 \\
-H "Content-Type: application/json" \\
-d '{"command": "{\\"jsonrpc\\": \\"2.0\\", \\"id\\": 1, \\"method\\": \\"tools/list\\", \\"params\\": {}}"}'
# 2. Convert LaTeX to Typst
curl -X POST http://localhost:3000/api/v1 \\
-H "Content-Type: application/json" \\
-d '{"command": "{\\"jsonrpc\\": \\"2.0\\", \\"id\\": 2, \\"method\\": \\"tools/call\\", \\"params\\": {\\"name\\": \\"latex_snippet_to_typst\\", \\"arguments\\": {\\"latex_snippet\\": \\"\\\\begin{align} a &= b \\\\\\\\ c &= d \\\\end{align}\\"}}}"}'
# 3. Validate Typst syntax
curl -X POST http://localhost:3000/api/v1 \\
-H "Content-Type: application/json" \\
-d '{"command": "{\\"jsonrpc\\": \\"2.0\\", \\"id\\": 3, \\"method\\": \\"tools/call\\", \\"params\\": {\\"name\\": \\"check_if_snippet_is_valid_typst_syntax\\", \\"arguments\\": {\\"typst_snippet\\": \\"$f in K \\\\( t^H \\\\, beta \\\\)_delta$\\"}}}"}'🔮 未来路线图
该项目旨在 通用Python MCP服务器支持:
计划中的MCP服务器
{
"filesystem": {
"repository": "https://github.com/modelcontextprotocol/python-sdk.git",
"build_command": "cd examples/server && pip install -e ../../",
"command": "/app/venv/bin/python3",
"args": ["examples/server/filesystem.py", "/tmp/mcp-servers"]
},
"web-search": {
"repository": "https://github.com/modelcontextprotocol/servers.git",
"build_command": "cd src/brave_search && pip install -r requirements.txt",
"command": "/app/venv/bin/python3",
"args": ["src/brave_search/server.py"]
},
"memory": {
"repository": "https://github.com/modelcontextprotocol/servers.git",
"build_command": "cd src/memory && pip install -r requirements.txt",
"command": "/app/venv/bin/python3",
"args": ["src/memory/server.py"]
}
}延伸策略
- 多服务器配置:通过环境变量在不同的MCP服务器之间切换
- 自动依赖关系管理:自动检测并安装每台服务器的Python依赖关系
- 运行时检测:支持不同的Python MCP服务器模式
- 插件系统:轻松添加新的Python MCP服务器
🐳 Docker功能
多阶段构建
- 第1阶段:使用优化的设置构建Rust核心二进制文件
- 第2阶段:Python 3.12 Alpine运行时与基本工具
Python优化
- 虚拟环境管理(
/app/venv) - Git存储库的克隆和构建
- Pandoc用于LaTeX转换
- 用于文档生成的Typst二进制文件
- 非root用户执行
安全
- 非root用户执行(
mcpuser) - 运行时依赖性最小
- 健康检查端点
📊 监测和管理
查看日志
# Docker Compose
docker-compose logs -f
# Docker
docker logs -f mcp-http-server-python容器管理
# Docker Compose
docker-compose up -d # Start
docker-compose down # Stop
docker-compose restart # Restart
# Docker
docker start mcp-http-server-python
docker stop mcp-http-server-python
docker restart mcp-http-server-python健康监测
# Check container health
docker inspect mcp-http-server-python | grep -A 10 Health
# Manual health check
curl -f http://localhost:3000/health
# Check running processes
docker exec mcp-http-server-python ps aux🔧 开发与调试
编译选项
# Build without cache
./docker-build.sh --no-cache
# Build only (don't run)
./docker-build.sh --build-only
# Custom port
./docker-build.sh --port 3000
# Use docker-compose
./docker-build.sh --use-compose调试
# Execute shell in container
docker exec -it mcp-http-server-python /bin/sh
# Check Python environment
docker exec mcp-http-server-python python3 --version
docker exec mcp-http-server-python pip --version
# Check virtual environment
docker exec mcp-http-server-python ls -la /app/venv/
# Check typst-mcp installation
docker exec mcp-http-server-python ls -la /tmp/mcp-servers/typst-mcp/
# Test typst binary
docker exec mcp-http-server-python typst --version
# Test pandoc
docker exec mcp-http-server-python pandoc --version🔗 相关项目
- mcp服务器作为http核心:核心Rust HTTP服务器
- 打字员mcp:Typst文档生成服务器
- python sdk:官方Python MCP SDK
🤝 贡献
- 分叉存储库
- 克隆你的叉子:
git clone - 创建要素分支
- 进行更改(重点关注Python MCP服务器支持)
- 测试用
./docker-build.sh --build-only - 提交拉取请求
添加新的MCP服务器
要添加对其他Python MCP服务器的支持:
- 更新
mcp_servers.config.json使用新的服务器配置 - 将任何所需的系统依赖项添加到
Dockerfile - 更新中的环境变量
.env.example - 将文档和示例添加到README.md
📄 许可证
这个项目是MIT许可证下的开源项目。有关详细信息,请参阅LICENSE文件。
⚠️ 重要提示
- 需要Docker:此实现仅适用于Docker,需要Docker运行
- Python焦点:专门针对Python MCP服务器进行了优化
- 典型的mcp MVP:当前配置为typst-mcp,可扩展到其他服务器
- 未来环球:设计用于轻松扩展到任何Python MCP服务器
🔄 更新
要更新到最新的核心服务器:
# Rebuild with latest core
./docker-build.sh --no-cache
# Or with docker-compose
docker-compose build --no-cache🆘 支持
- 问题:报告此存储库中的错误和请求功能
- 核心问题:对于HTTP服务器核心功能,请使用 岩心库
- 打字员mcp:对于typst-mcp特定问题,请使用 typst-mcp存储库
🚀 部署选项
发展
# Quick development setup
cp .env.example .env
echo "DISABLE_AUTH=true" >> .env
echo "MCP_SERVER_NAME=typst-mcp" >> .env
docker-compose up -d生产
# Production setup with authentication
cp .env.example .env
echo "DISABLE_AUTH=false" >> .env
echo "HTTP_API_KEY=your-secure-api-key-here" >> .env
echo "MCP_SERVER_NAME=typst-mcp" >> .env
docker-compose up -d______________________________________________________________________
内置于❤️ MCP(模型上下文协议)社区
🐳 Docker优化•🐍 专注于Python📝 打字mcp就绪•🚀 普遍可扩展
