# Limbs **Repository Path**: moss81/limbs ## Basic Information - **Project Name**: Limbs - **Description**: MCP Servers - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # limbs - MCP 工具集 limbs 是一个 MCP (Model Context Protocol) 工具集合,将多个 MCP 打包在一个程序中,通过命令行子命令启动不同的 MCP 服务。 ## 1. 核心能力 - **单二进制文件部署** - 无需安装依赖,直接运行 - **跨平台支持** - macOS、Linux、Windows 全平台支持 - **安全可控** - 路径白名单、命令白名单、超时控制 - **标准 MCP 协议** - 兼容 Claude Desktop、MCP Inspector 等客户端 ## 2. 包含的 MCP | MCP | 子命令 | 功能 | |-----|--------|------| | file-system | `limbs file-system` | 文件和目录操作(读写、搜索、管理) | | cmd-exec | `limbs cmd-exec` | 安全命令执行 | | api-proxy | `limbs api-proxy` | HTTP API 代理(配置驱动,单 Tool 多 API) | ## 3. 安装 ### 3.1 下载预编译版本 从 `bin/` 目录选择适合你平台的二进制文件: | 文件 | 平台 | 架构 | |------|------|------| | `limbs-darwin-amd64` | macOS | Intel | | `limbs-darwin-arm64` | macOS | Apple Silicon | | `limbs-linux-amd64` | Linux | Intel/AMD 64位 | | `limbs-linux-arm64` | Linux | ARM 64位 | | `limbs-windows-amd64.exe` | Windows | Intel/AMD 64位 | | `limbs-windows-arm64.exe` | Windows | ARM 64位 | ### 3.2 从源码构建 ```bash # 克隆仓库 git clone cd limbs # 构建所有平台版本 ./build.sh ``` 构建产物位于 `bin/` 目录。 --- ## 4. file-system MCP 文件和目录操作 MCP,提供 8 个工具函数。 ### 4.1 启动参数 ```bash limbs file-system --allowed-dirs [flags] ``` | 参数 | 类型 | 说明 | 默认值 | |------|------|------|--------| | `--allowed-dirs` | flag(必填) | 允许访问的目录列表,逗号分隔,**必须是绝对路径**,支持 `*` 通配符,传 `/` 表示根目录 | - | | `--read-only` | flag | 只读模式,禁止写入操作 | `false` | | `--log-level` | flag | 日志级别(debug/info/warn/error) | `info` | ### 4.2 启动示例 ```bash # 限制访问特定目录(必须是绝对路径) limbs file-system --allowed-dirs /home/user/project,/tmp/workspace # 只读模式 limbs file-system --allowed-dirs /home/user/project --read-only # 允许访问根目录(最高权限) limbs file-system --allowed-dirs / # 开启调试日志 limbs file-system --allowed-dirs /home/user/project --log-level debug # 错误示例:相对路径不被允许 # limbs file-system --allowed-dirs ./project # 会报错 ``` ### 4.3 通配符模式 `--allowed-dirs` 支持 `*` 通配符,`*` 匹配 **1 个或多个**非路径分隔符的字符(不跨 `/`),可以灵活匹配一组目录。 **匹配规则:** - `*` 匹配单层目录名或文件名的任意字符,不跨越路径分隔符 - 含 `*` 的项视为模式,走 glob 匹配;不含 `*` 的项保持精确路径匹配 - 模式必须为绝对路径 - 匹配对象为符号链接解析后的真实路径,安全性不变 **示例:** | 模式 | 匹配的路径 | |------|-----------| | `/home/*/abc` | `/home/123/abc`、`/home/xyz/abc` | | | 不匹配 `/home/123/456/abc`(层级数不一致) | | `/home/*/*/abc` | `/home/123/456/abc`、`/home/a/b/abc` | | `/home/*_*/abc` | `/home/123_ddd/abc`、`/home/err_444/abc` | | `/tmp/*` | `/tmp/foo`、`/tmp/bar` | | | 不匹配 `/tmp/foo/bar`(层级数不一致) | **启动示例:** ```bash # 通配符匹配用户家目录下的所有项目 limbs file-system --allowed-dirs "/home/*/project" # 组合精确路径和通配符 limbs file-system --allowed-dirs "/tmp/workspace,/home/*/logs,/var/*/data" # Windows 平台 limbs file-system --allowed-dirs "C:\Users\*\Documents" ``` ### 4.4 工具列表 | 工具名 | 功能 | 写入操作 | |--------|------|----------| | `read_file` | 读取文件内容 | ❌ | | `write_file` | 写入文件内容 | ✅ | | `list_directory` | 列出目录内容 | ❌ | | `create_directory` | 创建目录 | ✅ | | `delete_file` | 删除文件或目录 | ✅ | | `move_file` | 移动或重命名文件 | ✅ | | `search_files` | 搜索文件(glob 模式) | ❌ | | `get_file_info` | 获取文件详细信息 | ❌ | ### 4.5 工具详细说明 #### read_file 读取文件完整内容。 **参数:** ```json { "path": "/home/user/project/file.txt" } ``` **返回:** ```json { "content": "文件内容字符串" } ``` #### write_file 写入文件内容,覆盖已存在的文件。 **参数:** ```json { "path": "/home/user/project/file.txt", "content": "要写入的内容" } ``` **返回:** ```json { "success": true, "message": "File written successfully" } ``` #### list_directory 列出目录下的所有文件和子目录。 **参数:** ```json { "path": "/home/user/project" } ``` **返回:** ```json { "entries": [ {"name": "src", "type": "directory", "path": "/home/user/project/src"}, {"name": "main.go", "type": "file", "path": "/home/user/project/main.go"} ] } ``` #### create_directory 创建目录。 **参数:** ```json { "path": "/home/user/project/newdir" } ``` **返回:** ```json { "success": true, "message": "Directory created successfully" } ``` #### delete_file 删除文件或目录(目录会递归删除)。 **参数:** ```json { "path": "/home/user/project/file.txt" } ``` **返回:** ```json { "success": true, "message": "File deleted successfully" } ``` #### move_file 移动或重命名文件/目录。 **参数:** ```json { "source": "/home/user/project/old.txt", "destination": "/home/user/project/new.txt" } ``` **返回:** ```json { "success": true, "message": "File moved successfully" } ``` #### search_files 在目录中搜索匹配 glob 模式的文件。 **参数:** ```json { "path": "/home/user/project", "pattern": "*.go" } ``` **返回:** ```json { "files": [ "/home/user/project/main.go", "/home/user/project/utils.go" ] } ``` #### get_file_info 获取文件或目录的详细信息。 **参数:** ```json { "path": "/home/user/project/file.txt" } ``` **返回:** ```json { "name": "file.txt", "path": "/home/user/project/file.txt", "type": "file", "size": 1024, "modTime": "2026-04-23T10:30:00Z" } ``` ### 4.6 错误码 | 错误码 | 说明 | |--------|------| | `invalid_params` | 参数无效(路径为空、路径是目录而非文件等) | | `path_not_allowed` | 路径不在允许目录范围内 | | `not_found` | 文件或目录不存在 | | `permission_denied` | 系统权限不足 | | `write_disabled` | 只读模式下禁止写入操作 | | `internal_error` | 内部错误 | ### 4.7 安全控制 - **目录白名单** - 只能访问启动时指定的目录及其子目录,支持 `*` 通配符模式匹配 - **路径穿越防护** - 自动规范化路径,阻止 `../` 等穿越攻击 - **符号链接解析** - 路径检查时解析符号链接的真实路径,通配符模式也基于真实路径匹配,防止绕过目录白名单 - **锚点检查** - 含 `*` 的模式会检查通配符之前的前缀目录是否存在 - **只读模式** - `--read-only` 禁止所有写入操作 ### 4.8 配置示例 ```json { "name": "file-system", "type": "stdio", "description": "文件操作 MCP", "isActive": true, "command": "limbs", "args": [ "file-system", "--allowed-dirs", "/home/user/project,/tmp/workspace" ] } ``` **只读模式:** ```json { "name": "file-system", "type": "stdio", "description": "文件操作 MCP", "isActive": true, "command": "limbs", "args": [ "file-system", "--allowed-dirs", "/home/user/project", "--read-only" ] } ``` **允许访问根目录(最高权限):** ```json { "name": "file-system", "type": "stdio", "description": "文件操作 MCP", "isActive": true, "command": "limbs", "args": [ "file-system", "--allowed-dirs", "/" ] } ``` **通配符模式:** ```json { "name": "file-system", "type": "stdio", "description": "文件操作 MCP", "isActive": true, "command": "limbs", "args": [ "file-system", "--allowed-dirs", "/home/*/project,/tmp/workspace" ] } ``` --- ## 5. cmd-exec MCP 安全命令执行 MCP,通过白名单控制可执行的命令。 ### 5.1 启动参数 ```bash limbs cmd-exec --allowed-cmds --allowed-dirs [flags] ``` | 参数 | 类型 | 说明 | 默认值 | |------|------|------|--------| | `--allowed-cmds` | flag(必填) | 允许执行的命令白名单,逗号分隔 | - | | `--allowed-dirs` | flag(必填) | 允许访问的目录列表,逗号分隔,**必须是绝对路径**,支持 `*` 通配符,传 `/` 表示根目录 | - | | `--timeout` | flag | 命令执行超时秒数 | `60` | | `--max-output-size` | flag | stdout/stderr 单路最大输出字节数,超出截断并在末尾添加 `[output truncated]` | `1048576`(1MB) | | `--log-level` | flag | 日志级别 | `info` | **白名单配置:** - **具体命令名**:`git`、`npm`、`python`、`make`、`ls` 等 - **扩展名模式**:`*.sh`、`*.bat`、`*.py` 等表示允许执行对应类型的脚本文件 ### 5.2 启动示例 ```bash # 限制访问特定目录(必须是绝对路径) limbs cmd-exec --allowed-cmds git,npm,go,make --allowed-dirs /home/user/project,/tmp/workspace # 允许访问根目录(最高权限) limbs cmd-exec --allowed-cmds git,npm,go,make --allowed-dirs / # 允许执行命令和 Shell 脚本 limbs cmd-exec --allowed-cmds git,npm,*.sh --allowed-dirs /home/user/project # 配置超时时间 limbs cmd-exec --allowed-cmds git,npm,python --allowed-dirs /home/user/project --timeout 30 # 限制输出大小 limbs cmd-exec --allowed-cmds git,npm,go --allowed-dirs /home/user/project --max-output-size 5242880 # 通配符模式匹配多用户目录 limbs cmd-exec --allowed-cmds git,npm,go --allowed-dirs "/home/*/workspace,/tmp/*/build" # 错误示例:相对路径不被允许 # limbs cmd-exec --allowed-cmds git --allowed-dirs ./project # 会报错 ``` ### 5.3 工具详细说明 #### run_command 执行命令。 **参数:** ```json { "commandLine": "git status" } ``` **重要提示:** `commandLine` 是完整的命令行字符串,对于脚本必须包含解释器前缀: | 命令类型 | 正确格式 | 错误格式 | |----------|----------|----------| | Python 脚本 | `python /path/to/script.py` | `/path/to/script.py` | | Shell 脚本 | `bash /path/to/script.sh` | `/path/to/script.sh` | | Node.js 脚本 | `node /path/to/script.js` | `/path/to/script.js` | | 系统命令 | `ls /home/user` | - | | Git 命令 | `git status` | - | **返回:** ```json { "stdout": "命令标准输出", "stderr": "命令标准错误输出", "exitCode": 0 } ``` > 当 stdout 或 stderr 超过 `--max-output-size` 限制时,会在末尾追加 `[output truncated]` 标记。 **示例调用:** ```json // 执行系统命令 {"commandLine": "git status"} // 执行带参数的命令 {"commandLine": "npm install"} // 执行 Python 脚本 {"commandLine": "python /home/user/project/main.py"} // 执行 Shell 脚本带参数 {"commandLine": "bash /home/user/project/deploy.sh production"} ``` ### 5.4 错误码 | 错误码 | 说明 | |--------|------| | `invalid_params` | 参数无效(命令为空) | | `command_not_allowed` | 命令不在白名单中 | | `path_not_allowed` | 命令中的路径不在白名单范围内 | | `execution_error` | 命令执行失败 | | `timeout` | 命令执行超时 | | `internal_error` | 内部错误 | ### 5.5 安全控制 - **命令白名单** - 只有白名单中的命令允许执行,禁止相对路径命令(如 `./script`) - **脚本扩展名模式** - `*.sh`、`*.bat` 等模式匹配 - **路径白名单** - 命令参数中的路径必须在白名单范围内,支持 `*` 通配符模式匹配,解析符号链接真实路径防止绕过 - **超时控制** - 防止命令长时间运行 - **输出大小限制** - `--max-output-size` 限制 stdout/stderr 最大输出,防止内存耗尽 ### 5.6 配置示例 **限制访问特定目录:** ```json { "name": "cmd-exec", "type": "stdio", "description": "命令行执行 MCP", "isActive": true, "command": "limbs", "args": [ "cmd-exec", "--allowed-cmds", "git,npm,go,make", "--allowed-dirs", "/home/user/project,/tmp/workspace", "--timeout", "60", "--max-output-size", "1048576" ] } ``` **允许访问根目录(最高权限):** ```json { "name": "cmd-exec", "type": "stdio", "description": "命令行执行 MCP", "isActive": true, "command": "limbs", "args": [ "cmd-exec", "--allowed-cmds", "git,npm,go,make", "--allowed-dirs", "/", "--timeout", "60", "--max-output-size", "1048576" ] } ``` **允许执行脚本:** ```json { "name": "cmd-exec", "type": "stdio", "description": "命令行执行 MCP", "isActive": true, "command": "limbs", "args": [ "cmd-exec", "--allowed-cmds", "git,npm,python,*.sh", "--allowed-dirs", "/home/user/project", "--timeout", "120", "--max-output-size", "1048576" ] } ``` --- ## 6. api-proxy MCP HTTP API 代理 MCP,通过 JSON 配置文件定义 API 调用,将多个 API 整合为单个 Tool,减少 Agent 注册时的上下文消耗。 **核心特性:** - **单 Tool 多 API** - 所有 API 通过 `call_api(name, params)` 调用 - **配置驱动** - API 定义通过 JSON 配置文件管理,无需修改代码 - **安全认证** - 支持 Bearer、Basic、API Key 等认证方式,敏感信息可从环境变量获取 ### 6.1 启动参数 ```bash limbs api-proxy --api-dir [flags] ``` | 参数 | 类型 | 说明 | 默认值 | |------|------|------|--------| | `--api-dir` | flag(必填) | API 配置文件目录,**必须是绝对路径** | - | | `--log-level` | flag | 日志级别(debug/info/warn/error) | `info` | ### 6.2 启动示例 ```bash # 指定 API 配置目录(必须是绝对路径) limbs api-proxy --api-dir /home/user/apis # 开启调试日志 limbs api-proxy --api-dir /home/user/apis --log-level debug # 错误示例:相对路径不被允许 # limbs api-proxy --api-dir ./apis # 会报错 ``` ### 6.3 API 配置文件 配置文件放在 `--api-dir` 指定的目录下,每个 `.json` 文件定义一个 API。 **配置文件示例:** ```json { "name": "get_weather", "description": "获取天气信息", "url": "https://api.weather.com/v1/weather/${city}", "method": "GET", "auth": { "type": "bearer", "token": "$${WEATHER_API_KEY}" }, "headers": { "Accept": "application/json" }, "query": { "unit": "${unit}" }, "timeout": 30, "maxResponseSize": 10485760, "parameters": [ {"name": "city", "type": "string", "required": true, "description": "城市名称"}, {"name": "unit", "type": "string", "required": false, "default": "celsius", "description": "温度单位"} ] } ``` **字段说明:** | 字段 | 类型 | 必填 | 说明 | |-----|------|------|------| | `name` | string | 是 | API 名称,调用时匹配此字段 | | `description` | string | 否 | API 描述 | | `url` | string | 是 | API URL,支持 `${var}` 占位符 | | `method` | string | 否 | HTTP 方法(GET/POST/PUT/DELETE),默认 GET | | `auth` | object | 否 | 认证配置 | | `headers` | object | 否 | HTTP 请求头 | | `query` | object | 否 | URL 查询参数 | | `body` | object | 否 | 请求体(POST/PUT/PATCH),支持嵌套对象和数组 | | `bodyType` | string | 否 | 请求体类型:json(默认,支持嵌套)、form(仅扁平) | | `timeout` | integer | 否 | 超时秒数,默认 30 | | `maxResponseSize` | integer | 否 | 响应体最大字节数,默认 10MB,0 表示不限制 | | `parameters` | array | 否 | 参数定义 | ### 6.4 占位符规则 | 占位符 | 来源 | 示例 | |--------|------|------| | `${var}` | 调用参数(LLM 传入) | `${city}` 从 params.city 获取 | | `$${VAR}` | 环境变量(启动时注入) | `$${WEATHER_API_KEY}` 从环境变量获取 | **参数位置规则:** - `url` 中的 `${var}` → Path 参数(URL 路径替换) - `query` 中的 `${var}` → Query 参数 - `headers` 中的 `${var}` → Header 参数 - `body` 中的 `${var}` → Body 参数 **嵌套 Body 支持:** JSON 类型的 Body 支持嵌套对象和数组,占位符替换会递归遍历所有叶子节点(字符串值)。Form 类型仅支持扁平键值对结构。 ```json { "body": { "name": "${name}", "profile": { "role": "${role}", "tags": ["${tag1}", "${tag2}"] } } } ``` ### 6.5 认证配置 **1. Bearer Token** ```json { "auth": { "type": "bearer", "token": "$${API_KEY}" } } ``` 生成请求头:`Authorization: Bearer ` **2. Basic 认证** ```json { "auth": { "type": "basic", "username": "$${USER}", "password": "$${PASS}" } } ``` 生成请求头:`Authorization: Basic ` **3. API Key(Header 位置)** ```json { "auth": { "type": "api_key", "key": "X-API-Key", "value": "$${API_KEY}", "position": "header" } } ``` 生成请求头:`X-API-Key: ` **4. API Key(Query 位置)** ```json { "auth": { "type": "api_key", "key": "api_key", "value": "$${API_KEY}", "position": "query" } } ``` 生成 URL:`https://api.example.com?api_key=` **安全建议:** 敏感信息使用 `$${VAR}` 从环境变量获取,不要在配置文件中硬编码。 ### 6.6 工具详细说明 #### call_api 调用预定义的 HTTP API。 **参数:** ```json { "name": "get_weather", "params": { "city": "Beijing", "unit": "celsius" } } ``` | 参数 | 类型 | 必填 | 说明 | |-----|------|------|------| | `name` | string | 是 | API 名称,对应配置文件的 name 字段 | | `params` | object | 否 | API 参数 | **返回:** API 响应原样返回。 **示例调用:** ```json // GET 请求 {"name": "get_weather", "params": {"city": "Beijing"}} // POST 请求 {"name": "create_user", "params": {"name": "John", "email": "john@example.com"}} // 带认证的请求 {"name": "github_search", "params": {"query": "mcp"}} ``` ### 6.7 错误码 | 错误码 | 说明 | |--------|------| | `api_not_found` | API 名称不存在或配置重名 | | `invalid_params` | 参数无效(缺少必填参数、类型错误) | | `request_failed` | HTTP 请求失败(网络错误、超时、响应过大) | | `api_error` | API 返回错误(HTTP 4xx/5xx) | ### 6.8 配置示例 ```json { "name": "api-proxy", "type": "stdio", "description": "HTTP API 代理 MCP", "isActive": true, "command": "limbs", "args": [ "api-proxy", "--api-dir", "/home/user/apis", "--log-level", "info" ], "env": { "WEATHER_API_KEY": "your-weather-api-key", "GITHUB_TOKEN": "your-github-token" } } ``` **API 配置目录示例:** ``` /home/user/apis/ ├── weather.json # 天气 API ├── github.json # GitHub API ├── internal.json # 内部服务 API └── ... ``` ### 6.9 配套 Skills 文件 由于 api-proxy MCP 只注册了 `call_api` 工具,LLM 无法直接知道有哪些 API 可用。需要创建配套的 Skills 文件来指导 LLM 使用。 **Skills 文件位置:** 项目根目录下的 `.claude/skills//SKILL.md` **目录结构:** ``` .claude/skills/ ├── weather-api/ │ └── SKILL.md ├── api-services/ │ └── SKILL.md ``` #### 单 API Skills 示例 假设有一个天气 API 配置: `/home/user/apis/weather.json`: ```json { "name": "get_weather", "description": "获取天气信息", "url": "https://api.weather.com/v1/weather/${city}", "method": "GET", "query": {"unit": "${unit}"}, "parameters": [ {"name": "city", "type": "string", "required": true, "description": "城市名称"}, {"name": "unit", "type": "string", "required": false, "default": "celsius", "description": "温度单位"} ] } ``` 对应的 Skills 文件 `.claude/skills/weather-api/SKILL.md`: ````markdown --- name: weather-api description: 查询天气信息,当用户询问天气相关问题时使用 --- 当用户询问天气时,使用 **call_api** 工具调用 get_weather API。 **调用方式:** ```json {"name": "get_weather", "params": {"city": "城市英文名"}} ``` **参数:** | 参数 | 必填 | 说明 | 默认值 | |------|------|------|--------| | city | 是 | 城市名称(英文,如 Beijing、Shanghai) | - | | unit | 否 | 温度单位(celsius/fahrenheit) | celsius | ```` #### 多 API Skills 示例 当配置多个 API 时,建议创建一个综合 Skills 文件,每个 API 作为独立章节。 假设配置了以下三个 API: `/home/user/apis/weather.json`: ```json { "name": "get_weather", "description": "获取天气信息", "url": "https://api.weather.com/v1/weather/${city}", "method": "GET", "query": {"unit": "${unit}"}, "parameters": [ {"name": "city", "type": "string", "required": true, "description": "城市名称"}, {"name": "unit", "type": "string", "required": false, "default": "celsius", "description": "温度单位"} ] } ``` `/home/user/apis/github.json`: ```json { "name": "github_search", "description": "搜索 GitHub 仓库", "url": "https://api.github.com/search/repositories", "method": "GET", "auth": {"type": "bearer", "token": "$${GITHUB_TOKEN}"}, "query": {"q": "${query}", "sort": "${sort}", "per_page": "${perPage}"}, "parameters": [ {"name": "query", "type": "string", "required": true, "description": "搜索关键词"}, {"name": "sort", "type": "string", "required": false, "default": "best_match", "description": "排序方式"}, {"name": "perPage", "type": "integer", "required": false, "default": 10, "description": "每页数量"} ] } ``` `/home/user/apis/notification.json`: ```json { "name": "send_notification", "description": "发送团队通知", "url": "https://internal.company.com/api/notifications", "method": "POST", "auth": {"type": "api_key", "key": "X-Internal-Key", "value": "$${INTERNAL_API_KEY}", "position": "header"}, "body": { "content": { "message": "${message}", "priority": "${priority}" }, "channel": "${channel}" }, "bodyType": "json", "timeout": 10, "maxResponseSize": 1048576, "parameters": [ {"name": "message", "type": "string", "required": true, "description": "通知内容"}, {"name": "channel", "type": "string", "required": true, "description": "目标频道"}, {"name": "priority", "type": "string", "required": false, "default": "normal", "description": "优先级"} ] } ``` 对应的 Skills 文件 `.claude/skills/api-services/SKILL.md`: ````markdown --- name: api-services description: HTTP API 服务调用,用于天气查询、GitHub搜索、发送通知等场景 --- 使用 **call_api** 工具调用预定义的 HTTP API。 --- ## 1. get_weather - 天气查询 **调用:** ```json {"name": "get_weather", "params": {"city": "城市英文名"}} ``` **参数:** | 参数 | 必填 | 说明 | 默认值 | |------|------|------|--------| | city | 是 | 城市名称(英文) | - | | unit | 否 | 温度单位 | celsius | --- ## 2. github_search - GitHub 搜索 **调用:** ```json {"name": "github_search", "params": {"query": "搜索关键词"}} ``` **参数:** | 参数 | 必填 | 说明 | 默认值 | |------|------|------|--------| | query | 是 | 搜索关键词 | - | | sort | 否 | 排序方式 | best_match | | perPage | 否 | 返回数量 | 10 | --- ## 3. send_notification - 发送通知 **调用:** ```json {"name": "send_notification", "params": {"message": "通知内容", "channel": "频道名"}} ``` **参数:** | 参数 | 必填 | 说明 | 默认值 | |------|------|------|--------| | message | 是 | 通知内容 | - | | channel | 是 | 目标频道 | - | | priority | 否 | 优先级 | normal | ```` #### Skills 命名建议 | 场景 | 建议目录名 | |------|----------| | 单一 API | ``(如 `weather-api`) | | 多个 API | 按功能域命名(如 `api-services`、`internal-apis`) | | 企业内部 API | `-apis`(如 `company-apis`) | --- ## 7. 帮助信息 查看全局帮助: ```bash limbs --help ``` 查看子命令帮助: ```bash limbs file-system --help limbs cmd-exec --help limbs api-proxy --help ``` --- ## 8. 开发 ### 8.1 目录结构 ``` limbs/ ├── bin/ # 编译产物 ├── cmd/ # Cobra 命令行 ├── internal/common/ # 公用代码 │ ├── logger/ # 日志组件 │ └── utils/ # 工具函数 ├── mcps/ # MCP 模块 │ ├── filesystem/ # file-system MCP │ ├── cmdexec/ # cmd-exec MCP │ └── apiproxy/ # api-proxy MCP ├── docs/ # 文档 ├── build.sh # 构建脚本 ├── main.go # 入口 └── CLAUDE.md # 项目规范 ``` ### 8.2 运行测试 ```bash go test ./... -v ``` ### 8.3 构建 ```bash ./build.sh ``` --- ## 9. License MIT