MCP Markdown Template
🚀 核心理念
自动将markdown模板(如GitHub Issue模板)转换为MCP工具。只需编写一次模板,即可获得FastAPI端点和MCP工具。
🏗️ 建筑
mcp_tools/
├── models.py # Data models (Template, TemplateVariable)
├── loader.py # Load templates from files, directories, URLs
├── parser.py # Extract variables & render with Jinja2
├── generator.py # Create FastAPI endpoints dynamically
└── server.py # FastMCP server with CORS它是如何工作的:
- 负载 -从本地文件、目录或URL获取模板
- 解析 -提取物 `` 以及来自YAML frontmatter的元数据
- 生成 -使用Pydantic模型创建类型化的FastAPI端点
- 服务 -同时显示为REST API(
/api/docs)和MCP工具(/mcp)
🌟 特性
- 自动生成MCP工具 来自markdown模板
- 多个来源 -从本地文件、目录或URL加载
- Swagger用户界面 -测试终点位于
/api/docs - Docker就绪 -生产就绪容器设置
- CI/CD -GitHub自动化工作流操作
🛠️ 入门指南
地方发展
安装依赖项:
uv sync运行MCP服务器:
uv run uvicorn mcp_tools.main:starlette_app --host 127.0.0.1 --port 8000码头工人
构建Docker镜像:
docker build -t docker.io/username/mcp-markdown-template:latest .使用各种模板源运行容器:
# Mount local templates directory
docker run -i --rm -p 8000:8000 \
-v /path/to/your/templates:/app/templates \
-e MCP_TEMPLATES_SOURCE=/app/templates \
docker.io/hsiangjenli/mcp-markdown-template:latest# Load from URL (GitHub raw URL)
docker run -i --rm -p 8000:8000 \
-e MCP_TEMPLATES_SOURCE=https://raw.githubusercontent.com/hsiangjenli/mcp-markdown-template/refs/heads/main/.github/ISSUE_TEMPLATE/demo.md \
docker.io/hsiangjenli/mcp-markdown-template:latest# Multiple sources (comma-separated)
docker run -i --rm -p 8000:8000 \
-e MCP_TEMPLATES_SOURCE="/app/templates,https://raw.githubusercontent.com/owner/repo/main/template.md" \
-v /path/to/local/templates:/app/templates \
docker.io/hsiangjenli/mcp-markdown-template:latestMCP服务器配置(适用于Claude Desktop等):
{
"servers": {
"markdown-template": {
"url": "http://localhost:8000/mcp",
"type": "http"
}
},
"inputs": []
}模板源
| 格式 | 示例 |
|---|---|
| 本地目录 | /path/to/templates/ |
| 本地文件 | /path/to/template.md |
| URL | https://raw.githubusercontent.com/.../template.md |
| 多个 | source1,source2 (逗号分隔) |
环境变量
| 变量 | 默认值 |
|---|---|
MCP_TITLE | Python MCP Template |
MCP_DESCRIPTION | A template for creating MCP-compliant FastAPI |
MCP_TEMPLATES_SOURCE | .github/ISSUE_TEMPLATE |
📚 文档
在本地构建文档:
scripts/build_docs.sh && uv run mkdocs build