loading…
Search for a command to run...
loading…
生产就绪的MCP协议Jinja2模板渲染服务器,为AI应用提供安全沙箱执行和复杂JSON参数的模板处理能力。
生产就绪的MCP协议Jinja2模板渲染服务器,为AI应用提供安全沙箱执行和复杂JSON参数的模板处理能力。
🚀 生产就绪的MCP协议Jinja2模板渲染服务器
为AI应用提供强大的模板处理能力,支持复杂JSON参数和安全沙箱执行
Python Version MCP Protocol License Status
# 克隆项目
git clone https://github.com/WW-AI-Lab/jinja2-mcp-server.git
cd jinja2-mcp-server
# 安装依赖
pip install -r requirements.txt
# 立即启动 (stdio模式,适合AI客户端)
python run_server.py --transport stdio
# 或启动HTTP模式 (适合调试和测试)
python run_server.py --transport streamable-http --port 8123
# 使用MCP Inspector进行可视化测试
# 1. 启动HTTP服务器
python run_server.py --transport streamable-http --port 8123
# 2. 打开MCP Inspector: https://github.com/modelcontextprotocol/inspector
# 3. 连接到: http://localhost:8123
# 4. 测试render_template工具
{
"template": "Hello {{ user.name }}! You have {{ messages | length }} messages.",
"variables": {
"user": {"name": "Alice"},
"messages": [{"id": 1}, {"id": 2}]
}
}
输出: "Hello Alice! You have 2 messages."
{
"template_path": "examples/templates/email.html",
"variables": {
"user": {"name": "Bob", "email": "[email protected]"},
"items": [{"name": "Product A", "price": 29.99}]
}
}
{
"template": "{% for item in items %}{{ item.name }}{% endfor %}"
}
输出: {"valid": true, "variables_used": ["items"], "complexity": "low"}
获取所有可用的Jinja2过滤器(54个内置过滤器)
获取模板的详细信息和性能分析
jinja2-mcp-server/
├── 🏗️ src/jinja_mcp_server/ # 核心代码
│ ├── mcp_server.py # FastMCP服务器实现
│ ├── server.py # 启动入口
│ ├── jinja/environment.py # Jinja2环境管理
│ ├── config/settings.py # 配置系统
│ ├── tools/registry.py # MCP工具注册
│ └── utils/ # 工具库
├── 📄 examples/templates/ # 示例模板
│ ├── basic.html # 基础HTML模板
│ ├── email.html # 邮件模板
│ └── config.yaml # 配置模板
├── 🧪 tests/ # 测试用例
├── 📚 docs/ # 项目文档
└── 🚀 run_server.py # 启动脚本
# 与Claude/GPT集成
# AI模型可以通过MCP协议调用模板渲染功能
# 支持动态生成邮件、报告、配置文件等
<!-- examples/templates/email.html -->
<html>
<body>
<h1>Hello {{ user.name }}!</h1>
<p>Your order summary:</p>
<ul>
{% for item in items %}
<li>{{ item.name }} - ${{ item.price }}</li>
{% endfor %}
</ul>
</body>
</html>
# examples/templates/config.yaml
server:
name: {{ server.name }}
port: {{ server.port }}
environment: {{ env }}
features:
{% for feature in features %}
- {{ feature }}
{% endfor %}
<!-- 动态报告模板 -->
<div class="report">
<h2>{{ report.title }}</h2>
<p>Generated on: {{ now() | strftime('%Y-%m-%d') }}</p>
{% if metrics %}
<table>
{% for metric in metrics %}
<tr>
<td>{{ metric.name }}</td>
<td>{{ metric.value | round(2) }}</td>
</tr>
{% endfor %}
</table>
{% endif %}
</div>
# 复制配置文件
cp env.example .env
# 编辑配置
JINJA_AUTOESCAPE=true
JINJA_CACHE_SIZE=400
SECURITY_MAX_LOOP_ITERATIONS=10000
LOGGING_LEVEL=INFO
{
"jinja": {
"template_dirs": ["templates", "examples/templates"],
"autoescape": true,
"cache_size": 400,
"strict_undefined": false
},
"security": {
"enable_sandbox": true,
"max_template_size": 1048576,
"execution_timeout": 30,
"max_loop_iterations": 10000
},
"logging": {
"level": "INFO",
"enable_structlog": true,
"format": "json"
},
"mcp": {
"server_name": "jinja2-mcp-server",
"version": "1.0.0"
}
}
# 克隆并进入项目
git clone https://github.com/WW-AI-Lab/jinja2-mcp-server.git
cd jinja2-mcp-server
# 创建虚拟环境
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
# 安装开发依赖
pip install -r requirements.txt
# 运行测试
python -m pytest tests/ -v
# 代码格式化
black src/ tests/
isort src/ tests/
# 类型检查
mypy src/
# 基础功能测试
python test_server.py
# MCP协议测试
python test_mcp_tools.py
# 模板文件测试
python test_template_files.py
# HTTP协议测试
python test_mcp_http.py
# 基于现代Python生态
FastMCP # MCP协议框架
Jinja2 3.1+ # 模板引擎
Pydantic v2 # 数据验证
structlog # 结构化日志
asyncio # 异步处理
MarkupSafe # 安全转义
┌─────────────────────────────────────────┐
│ MCP Clients │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ AI Models │ │ MCP Inspector│ │
│ └─────────────┘ └─────────────┘ │
└─────────┬─────────────────┬─────────────┘
│ MCP Protocol │
│ │
┌─────────▼─────────────────▼─────────────┐
│ jinja2-mcp-server │
│ ┌─────────────────────────────────┐ │
│ │ FastMCP Core │ │
│ └─────────────────────────────────┘ │
│ ┌─────────────────────────────────┐ │
│ │ MCP Tools (5个) │ │
│ └─────────────────────────────────┘ │
│ ┌─────────────────────────────────┐ │
│ │ Jinja2 Service Layer │ │
│ └─────────────────────────────────┘ │
│ ┌─────────────────────────────────┐ │
│ │ Infrastructure │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────┘
# 多层安全防护
1. AST语法解析验证
2. 沙箱环境执行
3. 资源使用限制
4. 执行超时控制
5. 循环次数限制
6. 危险函数过滤
git checkout -b feature/amazing-featuregit commit -m 'Add amazing feature'git push origin feature/amazing-featureMIT License — 随意商用、改造,欢迎贡献代码!
如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!
这是 WW-AI-Lab 的开源项目,我们专注于:
当开源项目在实践中证明有效时,我们会将其升级为企业级方案:
👉 YFGaia - 提供更严谨的测试、文档与长期维护
| 渠道 | 地址 | 用途 |
|---|---|---|
| [email protected] | 合作 / 业务咨询 | |
| 🐦 X (Twitter) | @WW_AI_Lab | 最新动态、技术分享 |
| 💬 微信 | toxingwang | 深度交流,添加请注明来源 |
免责声明: 本项目基于MIT协议开源,仅供学习和研究使用。如需商业支持,请通过上述渠道联系。
Built with ❤️ using Python, Jinja2, FastMCP and Cursor IDE
Выполни в терминале:
claude mcp add jinja2-mcp-server -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.