TCL MCP服务器
模型上下文协议(MCP)服务器,使AI代理能够执行TCL脚本并管理MCP工具生态系统。考虑到安全性和开发人员经验而构建。
 
快速开始
# Install and run (safe mode with Molt runtime)
cargo install tcl-mcp-server
tcl-mcp-server
# Or build from source
git clone https://github.com/cyberdione/mcp-tcl-udf-server
cd mcp-tcl-udf-server
cargo build --release
./target/release/tcl-mcp-server
# OPTIONAL: Build with full unsafe TCL runtime (requires system TCL installation)
# cargo build --release --features tcl它做什么
- 执行TCL脚本:通过具有智能安全控制的MCP运行TCL代码
- 管理MCP生态系统:添加、删除和编排其他MCP服务器
- 默认安全:使用具有沙盒执行的Molt(内存安全TCL)
- 工具管理:创建、版本和组织自定义工具
- 交叉平台的:适用于Linux、macOS和Windows
运行时选项
在两种TCL运行时实现之间进行选择:
🔒 Molt运行时(默认-安全)
- 内存安全:用Rust编写,内置安全保证
- 沙盒:无文件I/O、无系统命令、无网络访问
- 子集:TCL数据处理和算法的核心功能
- 推荐:用于生产环境和不受信任的环境
- 文档: TCL图书
⚠️ TCL运行时(完整-不安全)
- 全部功能:具有所有功能的完整TCL语言
- 系统访问:文件I/O、系统命令、网络操作
- 强大的:高级脚本功能和系统集成
- 冒险的:需要可信的环境和仔细的输入验证
- 文档: TCL官方文件
核心功能
🔒 安全第一
- 受限模式 (默认):使用有限命令安全执行TCL
- 特权模式:TCL完全访问高级用例
- 运行时选择:在安全(Molt)和完整(TCL)实施之间进行选择
🛠️ MCP管理
# Add external MCP servers
tcl-mcp-server mcp add claude-flow "Claude Flow" -- npx claude-flow@alpha mcp start
# List all servers
tcl-mcp-server mcp list
# Test connectivity
tcl-mcp-server mcp ping claude-flow📦 工具组织
工具使用具有MCP兼容命名的命名空间系统进行组织:
bin__tcl_execute-执行TCL脚本user__alice__utils__reverse_string-用户创建的工具mcp__context7__get_library_docs-外部MCP服务器工具
用法
运行服务器
默认值(只读模式)
tcl-mcp-server特权模式(保存/存储脚本)
tcl-mcp-server --privileged
# or use the admin wrapper
tcl-mcp-server-admin基本命令
# Execute TCL directly
tcl-mcp-server run tcl_execute '{"script": "expr {2 + 2}"}'
# List available tools
tcl-mcp-server list
# Get tool information
tcl-mcp-server info tcl_execute
# Manage MCP servers
tcl-mcp-server mcp add my-server "My Server" -- node server.js
tcl-mcp-server mcp remove my-serverMCP客户端集成
克劳德桌面
{
"mcpServers": {
"tcl": {
"command": "/path/to/tcl-mcp-server",
"args": ["--runtime", "molt", "--privileged"]
}
}
}克劳德代码
claude mcp add tcl /path/to/tcl-mcp-server内置工具
核心工具(始终可用)
bin__tcl_execute -执行TCL脚本
{
"script": "set x 5; set y 10; expr {$x + $y}"
}bin__list_tools -列出可用工具
{
"namespace": "user",
"filter": "utils*"
}docs__molt_book -访问TCL文档
{
"topic": "basic_syntax"
}管理工具(仅限特权模式)
sbin__tcl_tool_add -创建自定义工具
{
"user": "alice",
"package": "utils",
"name": "reverse_string",
"version": "1.0",
"description": "Reverse a string",
"script": "return [string reverse $text]",
"parameters": [
{
"name": "text",
"description": "Text to reverse",
"required": true,
"type_name": "string"
}
]
}sbin__mcp_add -以编程方式添加MCP服务器
{
"id": "context7",
"name": "Context7 Server",
"command": "npx",
"args": ["@modelcontextprotocol/server-everything"],
"auto_start": true
}编译和运行时配置
编译选项
服务器支持两个必须在编译时选择的TCL运行时实现:
默认构建(Molt运行时-安全)
# Build with Molt runtime only (recommended)
cargo build --release
# The resulting binary uses Molt by default
./target/release/tcl-mcp-server使用TCL Runtime构建(完整但不安全)
# Build with full TCL runtime (requires system TCL installation)
cargo build --release --no-default-features --features tcl
# The resulting binary uses full TCL
./target/release/tcl-mcp-server使用两个运行库构建
# Build with both runtimes available (maximum flexibility)
cargo build --release --features molt,tcl
# Select runtime at startup
./target/release/tcl-mcp-server --runtime molt # Safe mode
./target/release/tcl-mcp-server --runtime tcl # Complete mode运行时选择(多运行时构建)
当使用多个运行时构建时,您可以在启动时选择:
# Command line selection
tcl-mcp-server --runtime molt # Safe: Molt runtime
tcl-mcp-server --runtime tcl # Unsafe: Full TCL runtime
# Environment variable
export TCL_MCP_RUNTIME=molt
tcl-mcp-server
# Priority: CLI args > Environment > Default (Molt)系统要求
对于Molt Runtime(默认):
- 仅限Rust工具链
- 无外部依赖关系
- 适用于所有平台
对于TCL运行时:
- 需要安装TCL系统(8.6+)
- 编译所需的开发标头
- 平台特定设置:
# Ubuntu/Debian
sudo apt-get install tcl-dev
# macOS
brew install tcl-tk
# Windows
# Install TCL from https://www.tcl-lang.org/software/tcltk/预构建的包装脚本
构建过程会自动生成便利包装:
# Generated during build
./target/release/tcl-mcp-server-admin # Privileged mode
./target/release/tcl-mcp-server-molt # Force Molt runtime
./target/release/tcl-mcp-server-admin-molt # Privileged + Molt
./target/release/tcl-mcp-server-ctcl # Force TCL runtime
./target/release/tcl-mcp-server-admin-ctcl # Privileged + TCLMCP服务器管理
添加服务器
# Basic server
tcl-mcp-server mcp add my-server "My Server" -- node server.js
# With environment variables
tcl-mcp-server mcp add my-server "My Server" \
--env "NODE_ENV=production" \
--env "API_KEY=secret" \
-- node server.js
# Custom timeout and retry settings
tcl-mcp-server mcp add my-server "My Server" \
--timeout-ms 60000 \
--max-retries 5 \
-- node server.js服务器信息
# List all servers
tcl-mcp-server mcp list
# Detailed view
tcl-mcp-server mcp list --detailed
# Server details
tcl-mcp-server mcp info my-server连接管理
# Manual connection
tcl-mcp-server mcp connect my-server
# Test connectivity
tcl-mcp-server mcp ping my-server
# Disconnect
tcl-mcp-server mcp disconnect my-server
# Remove server
tcl-mcp-server mcp remove my-server安全模型
默认安全(推荐)
- 受限模式:仅提供基本工具
- Molt运行时:内存安全、沙盒执行(请参见 模具文档)
- 无文件I/O:防止未经授权的文件访问
- 无系统命令:阻止系统级操作
特权模式
⚠️ 谨慎使用
- 完全TCL语言访问
- 工具管理能力
- 系统级操作是可能的(特别是在TCL运行时)
- 建议仅用于受信任的环境
- 使用TCL Runtime:完整的系统访问权限(参见 TCL文档)
建筑
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ AI Agent ├────►│ MCP Server ├────►│TCL Executor │
│ (Claude) │ │ (JSON-RPC) │ │ (Molt) │
└─────────────┘ └──────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ MCP Manager │
│ (External │
│ Servers) │
└─────────────┘高级用法
创建自定义工具
- 添加工具 (需要特权模式):
tcl-mcp-server run sbin__tcl_tool_add '{
"user": "dev",
"package": "math",
"name": "fibonacci",
"version": "1.0",
"description": "Calculate Fibonacci number",
"script": "proc fib {n} { if {$n <= 1} {return $n} else {return [expr {[fib [expr {$n-1}]] + [fib [expr {$n-2}]]}]} }; return [fib $n]",
"parameters": [
{
"name": "n",
"description": "Number to calculate Fibonacci for",
"required": true,
"type_name": "integer"
}
]
}'- 使用工具:
tcl-mcp-server run user__dev__math__fibonacci '{"n": 10}'运行时能力检测
智能代码生成的查询运行时功能:
tcl-mcp-server run tcl_runtime_info '{
"include_examples": true,
"category_filter": "safe"
}'运行时功能比较:
| 功能 | Molt运行时 | TCL运行时 |
|---|---|---|
| 内存安全 | ✅ 基于Rust,内存安全 | ⚠️ 基于C的手动内存管理 |
| 文件I/O | ❌ 出于安全考虑被阻止 | ✅ 完整文件操作 |
| 系统命令 | ❌ 不 exec 或系统调用 | ✅ 完整的系统集成 |
| 网络 | ❌ 无套接字操作 | ✅ 完整的网络功能 |
| 演出 | ⚡ 快速启动,低开销 | 🐌 启动速度较慢,内存使用率较高 |
| 兼容性 | 📚 TCL核心子集 | 🔧 完整的TCL语言+扩展 |
| 用例 | 数据处理、算法、安全脚本 | 系统管理、复杂应用程序 |
容器部署
FROM rust:1.70 as builder
WORKDIR /app
COPY . .
RUN cargo build --release
FROM debian:bookworm-slim
COPY --from=builder /app/target/release/tcl-mcp-server /usr/bin/
COPY --from=builder /app/target/release/tcl-mcp-server-admin /usr/bin/
CMD ["/usr/bin/tcl-mcp-server"]测试
# Run the test suite
./scripts/run_mcp_tests.sh
# Test specific functionality
python3 tests/test_bin_exec_tool_mcp.py数据存储
服务器配置存储在适合平台的位置:
- Linux:
~/.local/share/tcl-mcp-server/ - macOS:
~/Library/Application Support/tcl-mcp-server/ - 视窗:
%APPDATA%\tcl-mcp-server\
故障排除
常见问题
服务器无法启动
# Check runtime availability
tcl-mcp-server --runtime molt --privileged
# Enable debug logging
RUST_LOG=debug tcl-mcp-serverMCP服务器连接失败
# Test connectivity
tcl-mcp-server mcp ping server-id
# Check server logs
TCL_MCP_DEBUG_STDERR=1 tcl-mcp-server未找到工具
# List available tools
tcl-mcp-server list
# Check specific namespace
tcl-mcp-server list --namespace user贡献
- 分叉存储库
- 创建要素分支
- 添加新功能的测试
- 确保所有测试通过
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
