返回市场
代理标准MCP

代理标准MCP

作者:n-r-w2 星标更新:2025-11-12

项目介绍

Agent Standards MCP Server

一个提供代理访问标准和规则的模型上下文协议(MCP)服务器。它使代理能够列出可用的标准并以编程方式检索其内容。

为什么使用这个MCP服务器?

不同的情况需要不同的规则。有些用于编码(且不同语言有不同的规则),其他用于数据库操作,还有一些用于API操作等。如果一次性将所有规则加载到上下文中(例如放在AGENTS.md中),这会导致:

  • 增加LLM请求的成本(更多令牌 - 更高价格)
  • 响应变慢(更多令牌 - 请求处理时间更长)
  • LLM注意力分散(过多信息 - LLM可能会混淆哪些重要哪些不重要)

每个人解决这个问题的方式不同。例如:

  • Claude Code 提供了一种技能机制,但不幸的是,这种机制无法控制,因为Claude自身决定使用哪种技能。无法通过CLAUDE.md手动设置何时使用一种或另一种技能的规则。
  • 在Github Copilot中,可以创建不同的规则集,并指定它们应用于哪些文件扩展名。但这只会在调用改变这些文件内容的工具时起作用。也就是说,在规划和决策阶段,LLM将无法访问这些规则,很可能做出错误的决策。

此MCP服务器解决了这些问题:

  • 可以明确地告诉代理何时加载标准,只需在规则或命令中写明即可
  • 规则目录是集中化的。没有绑定到特定代理/IDE的实现 - 可以与任何支持MCP的LLM代理一起使用

可用工具

该服务器提供了两个工具:

  • list_standards:列出所有可用标准及其描述
  • get_standards:根据名称检索特定标准的全部内容

安装

预编译二进制包

多个平台的预编译二进制包已提供:

  • Linux (AMD64): agent-standards-mcp-v*-linux-amd64.tar.gz
  • macOS (Intel): agent-standards-mcp-v*-darwin-amd64.tar.gz
  • macOS (Apple Silicon): agent-standards-mcp-v*-darwin-arm64.tar.gz
  • Windows (AMD64): agent-standards-mcp-v*-windows-amd64.zip

GitHub Releases下载最新版本。

从源代码构建

go build -o agent-standards-mcp ./cmd/agent-standards-mcp

或者使用Task:

task build

macOS安装注意事项

macOS可能由于安全设置默认阻止执行下载的二进制文件。要允许可执行文件运行:

  1. 首次尝试执行:从终端运行可执行文件

    ./agent-standards-mcp --version
    

    这将显示一个安全警告。点击完成

  2. 通过系统设置允许执行

    • 打开系统设置隐私与安全安全性
    • 查找关于被阻止的可执行文件的消息
    • 点击**“无论如何允许”**
  3. 第二次执行:再次运行可执行文件

    ./agent-standards-mcp --version
    
  4. 确认执行:将出现一个对话框要求确认

    • 点击**“无论如何打开”**,如有提示请输入密码
    • 现在可执行文件将被允许运行

完成以上步骤后,可执行文件将在您的系统上永久允许运行。

IDE集成

Claude Code

使用CLI添加MCP服务器:

claude mcp add -s user --transport stdio agent-standards /path/to/agent-standards-mcp

Cursor IDE, RooCode, KiloCode等

添加到您的Cursor设置:

{
  "mcpServers": {
    "agent-standards": {
      "command": "/path/to/agent-standards-mcp"
    }
  }
}

配置

设置系统提示

选项1:手动包含(推荐)

在工作流(子代理、命令等)中添加以下指令,强制使用标准检索工作流:

OpenCode示例:

必须使用`agent-standards_list_standards` -> `agent-standards_get_standards`工具来获取项目相关的标准

工具名称可以根据您使用的代理有所不同。如果您不确定,请询问您的代理正确的工具名称。

选项2:自动包含(可以被LLM绕过)

在您的AGENTS.md/CLAUDE.md/其他代理规则文件中添加以下强制性规则,以强制使用标准检索工作流:

🚨🚨🚨 **在任何工作空间探索之前的第一项强制行动:** 🚨🚨🚨
1. 遵循STANDARDS_RETRIEVAL_WORKFLOW
2. 即使您100%确定不需要,也必须遵循STANDARDS_RETRIEVAL_WORKFLOW:
    * 对于最小的任务,无论感知的简单性或显而易见性如何

**分层规则强制执行**
🚨🚨🚨 关键规则违反 🚨🚨🚨
- 第一项强制行动:STANDARDS_RETRIEVAL_WORKFLOW
- 后果:任务失败,直到完成工作流之前不允许响应
- 验证:必须明确声明每个已完成的步骤才能继续

**强制性的STANDARDS_RETRIEVAL_WORKFLOW:**
1. 必须宣布“🧠 使用标准检索工作流”
2. 快速浏览工作空间以了解项目类型
3. 确定任务类型和范围
4. 确定相关标准类别(编码、工作流程、业务分析、测试、架构等)
5. 获取可用标准列表
6. 选择最相关的标准以应对您的任务
7. 必须以以下格式宣布:
    ```
    相关标准对于{任务类型}:
    - {标准1}:{为什么它相关。例如,“涵盖X的最佳实践”}
    ...
    ```
8. 获取选定标准的内容
9. 将检索到的标准应用于您的任务执行
10. 使用标准作为指导继续您的主要任务工作流
  • 某些LLM可能需要修改措辞以更好地符合其理解。
  • 为什么这些规则不包含在MCP服务器提示中?因为某些代理(如RooCode/KiloCode)开始尝试使用工具list_standardsget_standards不是像MCP工具那样,而是作为常规系统工具,这导致了工具调用错误。
  • 为什么要让LLM说些什么?这样我们使LLM采取正确的第一步并且不会忘记它。这大大减少了忽略规则的可能性。

使用环境变量配置服务器(可选)

  • AGENT_STANDARDS_MCP_LOG_LEVEL:日志级别(NONE/DEBUG/INFO/WARN/ERROR,默认:"ERROR")
  • AGENT_STANDARDS_MCP_FOLDER:标准文件夹路径(默认:"~/agent-standards")
  • AGENT_STANDARDS_MCP_MAX_STANDARDS:加载的最大标准数量(默认:100)
  • AGENT_STANDARDS_M_最大标准大小:标准文件的最大大小(字节,默认:10240)

使用

标准管理

将您的标准Markdown文件放置在指定的标准文件夹中(默认:~/agent-standards/standards

使用以下格式:

---
description: {标准的简要描述}
---

## {标准标题。从##开始}
{标准的全部内容放在这里。按照##标题进行章节划分。}

LLM代理可以通过MCP服务器访问这些标准:

  • 列出标准:使用list_standards工具获取可用标准名称及其描述的列表。
  • 获取标准内容:使用get_standards工具根据名称检索特定标准的全部内容。

额外规则

某些LLM可能需要额外规则才能正确利用标准。您可能希望在您的AGENTS.md/CLAUDE.md等中添加额外规则。 注意防止提示注入,因为某些LLM(如GPT-5)如果认为规则不安全可能会停止响应。

日志

默认情况下,服务器仅记录错误。您可以使用AGENT_STANDARDS_MCP_LOG_LEVEL环境变量调整日志级别。可用级别有:NONE、DEBUG、INFO、WARN、ERROR。默认位置:~/agent-standards/logs/

开发

先决条件

  • Go 1.25.1 或更高版本
  • Task(使用go install github.com/go-task/task/v3/cmd/task@latest安装)

构建命令

# 构建应用程序
task build

# 运行测试
task test

# 运行带有覆盖率的测试
task test-coverage

# 运行linter
task lint

# 格式化代码
task format

# 清理构建工件
task clean

# 运行应用程序
task run

# 使用DEBUG日志级别运行
task run-debug

# 更新依赖
task deps

# 生成代码
task generate

# 安装开发工具
task install-tools

# 运行完整的CI流水线
task ci

发布过程

该项目使用GitHub Actions进行自动化发布:

  1. 提交消息:使用常规提交格式
  2. 版本标签:创建语义版本标签(例如,v1.0.0
  3. 自动发布:推送标签会触发发布工作流
  4. 生成资产:所有平台的二进制文件,校验和

发布步骤

# 1. 使用常规提交消息进行更改
git commit -m "feat: 添加新功能"

# 2. 创建并推送版本标签
git tag v1.0.0
git push origin v1.0.0

# 3. GitHub Actions将自动创建发布

贡献

  1. 分叉仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature
  3. 使用常规提交消息进行更改
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开拉取请求

变更日志

详细变更日志请参阅GitHub Releases页面。