TAAL-工具和代理抽象层
TAAL为您的MCP(模型上下文协议)服务器配置和代理技能提供了一个单一的事实来源,并在所有AI编码工具中自动同步它们。
快速开始
# Install globally
npm install -g @anaclumos/taal
# Initialize TAAL
taal init
# Edit ~/.taal/config.yaml with your MCP servers
# Sync to all providers
taal sync安装
通过npm(推荐)
npm install -g @anaclumos/taal通过bunx
bunx @anaclumos/taal --help来源
git clone https://github.com/anaclumos/taal.git
cd taal
bun install
bun run src/index.ts --help命令
taal init
在中初始化TAAL配置 ~/.taal/.
taal init
taal init --force # Overwrite existing config创建:
~/.taal/config.yaml-您的统一配置~/.taal/skills/-代理技能目录~/.taal/backups/-同步前自动备份
taal collect
从已安装的提供程序导入现有的MCP服务器配置。
taal collect扫描所有已安装的提供程序,并将其MCP配置合并到您的TAAL配置中。当同一服务器名称在提供程序之间具有不同配置时,警告冲突。
taal validate
验证您的TAAL配置。
taal validate检查:
- YAML语法
- 模式验证
- 未定义的环境变量
- 互斥性(stdio vs HTTP)
退出代码:
0-有效配置1-配置无效
taal diff
预览不写会发生什么变化。
taal diff # Show changes for all providers
taal diff cursor # Show changes for specific provider显示:
+要添加的服务器-要删除的服务器~要修改的服务器
退出代码:
0-无变化1-检测到更改
taal sync
将MCP配置和技能同步到提供商(核心命令)。
taal sync # Sync to all enabled providers
taal sync cursor # Sync to specific provider它的作用:
- 倒像
~/.taal/config.yaml - 将服务器转换为特定于提供商的格式
- 创建现有配置的备份
- 以原子方式写入新配置
- 将技能复制到提供者目录
taal list
列出配置的MCP服务器和技能。
taal list显示:
- 所有已配置的MCP服务器(stdio/http)
- 所有发现的技能
- 已启用的提供商
taal providers
列出所有支持的提供商。
taal providers为每个提供者显示:
- 安装状态
- 启用/禁用状态
- 配置文件路径
- 配置格式(json/yaml/toml)
配置
配置文件: ~/.taal/config.yaml
version: "1"
mcp:
# TAAL MCP server (requires bun: https://bun.sh)
taal:
command: bunx
args: ["--bun", "taal-mcp"]
# Stdio server example
filesystem:
command: bunx
args: ["--bun", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
env:
LOG_LEVEL: "info"
# HTTP server example
context7:
url: https://mcp.context7.com/mcp
headers:
CONTEXT7_API_KEY: "${CONTEXT7_API_KEY}"
skills:
paths:
- ~/.taal/skills
- ~/projects/my-custom-skills
providers:
enabled:
- claude-desktop
- cursor
- zed环境变量
使用 ${VAR_NAME} 引用环境变量的语法:
mcp:
my-server:
command: npx
env:
API_KEY: "${MY_API_KEY}"TAAL将:
- 在同步时替换变量
- 如果变量未定义,则发出警告
- 保持原始
${VAR}语法(如果未定义)
特定于提供商的覆盖
mcp:
my-server:
command: npx
args: ["-y", "server"]
overrides:
codex:
enabled_tools: ["tool1", "tool2"]
startup_timeout_sec: 60TAAL MCP服务器
TAAL可以作为MCP服务器运行,以将其CLI功能作为工具公开。需要 包子.
mcp:
taal:
command: bunx
args: ["--bun", "taal-mcp"]暴露的工具:
taal_inittaal_config_readtaal_collect(收集并写信给~/.taal/config.yaml)taal_mcp_addtaal_mcp_deletetaal_skill_path_addtaal_skill_path_deletetaal_validatetaal_difftaal_synctaal_listtaal_providers
支持的提供商
TAAL支持9个AI编码助手:
| 提供者 | 配置格式 | 配置路径 | 技能支持 |
|---|---|---|---|
| 克劳德桌面版 | JSON | ~/Library/Application Support/Claude/claude_desktop_config.json | ✅ ~/.claude/skills/ |
| 克劳德代码 | JSON | ~/.claude/settings.json | ✅ ~/.claude/skills/ |
| 光标 | JSON | ~/Library/Application Support/Cursor/User/settings.json | ❌ |
| Continue.dev | YAML | ~/.continue/config.yaml | ❌ |
| 泽德 | JSON | ~/.config/zed/settings.json | ❌ |
| 开源代码 | JSON | ~/.config/opencode/opencode.json | ✅ .opencode/skills/ |
| 法典 | 汤姆 | ~/.codex/config.toml | ✅ ~/.codex/skills/ |
| 帆板运动 | JSON | 特定于提供程序的路径 | ❌ |
| 反重力 | JSON | 特定于提供程序的路径 | ❌ |
提供商特定注意事项
克劳德桌面版
- 仅支持stdio服务器(无HTTP)
- 技能目录:
~/.claude/skills/
克劳德代码
- 支持stdio和HTTP服务器(SSE已弃用)
- 用途
type: "http" | "stdio"配置中的格式 - 技能目录:
~/.claude/skills/ - 可以通过以下方式从Claude Desktop导入服务器
claude mcp add-from-claude-desktop
光标
- 仅支持stdio服务器
- macOS:
~/Library/Application Support/Cursor/User/settings.json - Linux:
~/.config/Cursor/User/settings.json
Continue.dev
- 支持stdio和HTTP(SSE)
- 变换
${VAR}到${{ secrets.VAR }}
泽德
- 用途
context_servers密钥(不是mcpServers) - 支持stdio和HTTP
开源代码
- 命令为数组:
["npx", "-y", "package"] - 用途
environment而不是env - 明确的
type: "local" | "remote"
法典
- TOML格式
[mcp_servers.name]章节 - 用途
http_headers对于HTTP服务器 - 支持
enabled_tools过滤
帆板运动
- 支持
streamable-httpHTTP服务器的传输
反重力
- 仅支持stdio服务器
代理技能
TAAL同步 代理技能 支持他们的供应商。
技能结构
~/.taal/skills/
└── my-skill/
├── SKILL.md # Required: YAML frontmatter + instructions
├── scripts/ # Optional: Helper scripts
└── references/ # Optional: Reference materialsSKILL.md格式
---
name: My Skill
description: What this skill does
version: 1.0.0
---
# My Skill
Instructions for the AI agent...技能发现
TAAL从所有路径中发现技能 skills.paths:
skills:
paths:
- ~/.taal/skills
- ~/projects/custom-skills
- /shared/team-skills技能验证
TAAL验证:
SKILL.md存在- YAML frontmatter有效
name字段存在
无效技能将被跳过并发出警告。
工作流示例
首次设置
# 1. Initialize TAAL
taal init
# 2. Import existing configs
taal collect
# 3. Validate merged config
taal validate
# 4. Preview changes
taal diff
# 5. Sync to all providers
taal sync添加新的MCP服务器
# 1. Edit config
vim ~/.taal/config.yaml
# 2. Validate
taal validate
# 3. Preview changes
taal diff
# 4. Sync
taal sync添加新技能
# 1. Create skill directory
mkdir -p ~/.taal/skills/my-skill
# 2. Create SKILL.md
cat > ~/.taal/skills/my-skill/SKILL.md 1.0.1
npm version minor # 1.0.0 -> 1.1.0
npm version major # 1.0.0 -> 2.0.0- 承诺并推动:
git add package.json
git commit -m "chore: bump version to v1.0.1"
git push origin main- 创建GitHub版本:
- 转到GitHub→ 发布→ “创建新版本” - 创建新标签(例如。, v1.0.1) - 添加发行说明 - 点击“发布发布”
- GitHub自动操作:
- 运行测试 - 运行门楣 - 向NPM发布并注明出处
先决条件
存储库维护人员必须配置:
- NPM可信发布(OIDC)-不需要NPM_TOKEN
- 启用2FA的NPM帐户
- 包访问权限
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 为新功能编写测试
- 确保所有测试通过:
bun test - 确保过梁通过:
bun x ultracite check - 提交拉取请求
添加新提供者
- 创建
src/providers/my-provider.ts - 实施
Provider接口 - 注册于
src/providers/my-provider.ts:registry.register(new MyProvider()) - 在中添加测试
tests/providers/my-provider.test.ts - 更新此自述文件
许可证
麻省理工学院
链接
致谢
内置:
