Agent Layer MCP 服务器框架
- 项目简介
- Agent Layer 是一个面向 MCP 的后端框架,核心职责是托管资源、注册与执行工具,以及定义并渲染可定制的 Prompt 模板,通过标准化的 JSON-RPC 风格通信向 LLM 客户端提供上下文和能力。
- 服务器端负责会话管理、能力声明,并支持多种传输协议(如 StdIO、SSE、WebSocket),以实现安全、可扩展的上下文服务,帮助 LLM 客户端高效地访问资源与工具。
- 主要功能点
- 资源托管与数据访问:统一管理 Resources(如 docs、templates、visioned memory 等),提供一致的访问路径和权限控制。
- 工具注册与执行:能够注册并暴露 Tools,LLM 客户端可通过 MCP 调用外部功能。
- Prompt 模板渲染:提供模板渲染机制,按需渲染不同交互场景的 Prompt,支持自定义模型交互模式。
- JSON-RPC 风格通信:与客户端以 JSON-RPC 请求/响应形式交互,便于跨语言实现与互操作性。
- 多传输协议支持:内置对 StdIO、SSE、WebSocket 等传输方式的支持,便于在不同运行环境中接入 MCP 客户端。
- 会话管理与能力声明:负责对会话进行跟踪,声明服务器的能力集,自动化地将 MCP 服务器配置投影到各客户端配置中。
- 安装步骤
- 在目标机器安装并配置 Agent Layer CLI。
- 将仓库克隆或下载到本地,确保依赖与构建环境准备就绪。
- 根据需要编辑 .agent-layer 配置,定义 MCP 服务器(id、transport、command、args、env 等字段)并将其投影到客户端配置。
- 启动 MCP Prompts 服务器(如需内部提示服务器),以及其他需要的 MCP 服务。
- 服务器配置(示例,JSON 格式)
注:以下示例用于说明 MCP 服务器配置的字段含义,具体值请以实际部署为准。
[
{
"id": "internal-prompt",
"name": "InternalPromptServer",
"enabled": true,
"transport": "stdio",
"command": "internal-mcp-server",
"args": ["--mode", "prompts"],
"env": {
"AL_TOKEN": "example-token"
}
},
{
"id": "remote-http",
"name": "RemoteHttpServer",
"enabled": true,
"transport": "http",
"url": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer ${API_KEY}"
},
"http_transport": "sse",
"env": {
"API_KEY": "your-api-key"
}
}
]
说明:
- server 的 id 是 MCP 服务器在客户端配置中的唯一标识符,应保持全局唯一。
- command/args/env 用于启动本地或远端 MCP 服务器进程,客户端在连接时会根据这些字段发起请求。
- http_transport 指定 HTTP MCP 服务器的传输模式(如 SSE、streamable)。
- 根据需要可添加更多字段,例如 header、URL 等,以满足不同 MCP 服务器的安全与连接需求。
- 基本使用方法
- 启动并配置 MCP 服务器:通过 al 命令初始化并投射 MCP 服务器配置到各客户端。
- 客户端对接:MCP 客户端使用上述配置与服务器建立连接,发出读取资源、调用工具、获取 Prompt 的请求。
- 运行与调试:使用 al doctor、al mcp-prompts 等工具检查连接、健康状况及响应格式。
- 安全性与扩展性:MCP 服务器端负责凭证与密钥的管理,确保令牌在环境变量中传递,避免在代码中硬编码。