Markdown模板转换工具

将Markdown模板(如GitHub Issue模板)自动转换为FastAPI端点和MCP工具,支持从本地文件、目录或URL加载模板,并生成类型化的FastAPI端点。

  • by hsiangjenli
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hsiangjenli/mcp-yaml-to-markdown

使用说明

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

它是如何工作的:

  1. 负载 -从本地文件、目录或URL获取模板
  2. 解析 -提取物 <variables> 以及来自YAML frontmatter的元数据
  3. 生成 -使用Pydantic模型创建类型化的FastAPI端点
  4. 服务 -同时显示为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:latest

MCP服务器配置(适用于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