项目简介

Authed MCP Server Integration 是一个将 Authed 身份认证系统与 Model Context Protocol (MCP) 服务器相结合的开源项目。它允许开发者快速构建安全的 MCP 服务器,为 AI Agent 提供经过身份验证的上下文信息访问服务。该项目基于 Python 和 FastAPI 框架,易于安装和配置,并提供了丰富的示例和文档。

主要功能点

  • 资源管理: 支持 MCP 资源 (Resources) 的注册和访问控制,允许 AI Agent 安全地读取和操作数据。
  • 工具集成: 允许注册和执行 MCP 工具 (Tools),扩展 AI Agent 的能力,例如调用外部 API 或执行特定功能。
  • Prompt模板: 支持定义和渲染 MCP Prompt 模板 (Prompts),使 AI Agent 能够根据上下文生成定制化的 Prompt。
  • 安全认证: 集成 Authed 身份认证系统,确保只有经过授权的 AI Agent 才能访问 MCP 服务器的功能和数据。
  • SSE传输: 使用 Server-Sent Events (SSE) 作为默认的传输协议,支持高效的服务器推送和实时通信。
  • 易于扩展: 基于 FastAPI 和 MCP 框架构建,方便开发者根据自身需求进行定制和扩展。

安装步骤

  1. 环境准备: 确保已安装 Python 3.8 或更高版本和 pip 包管理器。
  2. 安装 SDK: 打开终端,运行以下命令安装 Authed SDK:
    pip install authed

服务器配置

MCP 服务器配置主要通过命令行参数或环境变量进行。以下是一个 'server_config.json' 配置示例,展示了启动 MCP 服务器所需的关键信息:

{
  "server name": "authed-mcp-server",
  "command": "authed_mcp.server:main",
  "args": [
    "--host", "0.0.0.0",
    "--port", "8000",
    "--name", "my-mcp-server",
    "--demo",  // 注册 demo handlers (可选,用于快速体验)
    // 以下为 Authed 认证配置,建议使用环境变量方式配置,此处仅为示例
    // "--registry-url", "https://api.getauthed.dev",
    // "--agent-id", "your-agent-id",
    // "--agent-secret", "your-agent-secret",
    // "--private-key", "your-private-key",
    // "--public-key", "your-public-key"
  ],
  "env": {
    // 建议将 Authed 认证信息配置在环境变量中,更安全
    "AUTHED_REGISTRY_URL": "https://api.getauthed.dev",   // Authed 注册中心 URL
    "AUTHED_AGENT_ID": "your-agent-id",                 // MCP 服务器 Agent ID
    "AUTHED_AGENT_SECRET": "your-agent-secret",           // MCP 服务器 Agent Secret
    "AUTHED_PRIVATE_KEY": "your-private-key"             // MCP 服务器 Agent 私钥
    // "AUTHED_PUBLIC_KEY": "your-public-key"             // MCP 服务器 Agent 公钥 (可选,如果需要显式指定)
  }
}

配置参数说明:

  • 'server name': 自定义服务器名称,用于标识和管理。
  • 'command': 必须,指定 MCP 服务器的启动命令入口为 'authed_mcp.server:main',指向 'authed_mcp/server.py' 文件中的 'main' 函数。
  • 'args': 可选,用于配置服务器行为的命令行参数,例如:
    • '--host': 指定服务器绑定的主机地址,默认为 '0.0.0.0' (监听所有地址)。
    • '--port': 指定服务器监听的端口号,默认为 '8000'。
    • '--name': 自定义 MCP 服务器实例的名称。
    • '--verbose' 或 '-v': 启用详细日志输出 (debug 级别)。
    • '--demo': 注册默认的 demo 资源、工具和 Prompt handler,方便快速体验服务器功能。生产环境请勿使用
    • '--registry-url', '--agent-id', '--agent-secret', '--private-key', '--public-key': Authed 认证配置参数,推荐使用 'env' 环境变量方式配置,此处仅为示例
  • 'env': 推荐,用于设置 MCP 服务器运行时的环境变量,强烈建议将 Authed 认证相关的敏感信息 (如 'AUTHED_AGENT_SECRET', 'AUTHED_PRIVATE_KEY') 配置在环境变量中,避免泄露

注意:

  • 请将 'your-agent-id', 'your-agent-secret', 'your-private-key' 替换为实际的 Authed Agent 凭据。
  • 公钥 'AUTHED_PUBLIC_KEY' 通常可以自动获取,但在某些情况下可能需要显式配置。
  • 生产环境请务必移除 '--demo' 参数,并根据需要配置更完善的资源、工具和 Prompt handler。

基本使用方法

  1. 启动服务器: 根据 'server_config.json' 中的配置,在终端中使用 MCP 客户端工具(例如 'authed mcp client' 命令,参考仓库中的 'integrations/mcp/authed_mcp/client.py')连接到 MCP 服务器,并执行资源读取、工具调用或 Prompt 获取等操作。
  2. 注册资源/工具/Prompt: 参考 'integrations/mcp/examples/server/simple_server.py' 中的示例代码,在 'create_server' 和 'run_server' 之间使用 'server.resource()', 'server.tool()', 'server.prompt()' 装饰器注册自定义的资源处理函数、工具处理函数和 Prompt 生成函数。
  3. 客户端交互: 使用 'AuthedMCPClient' 或 'authed mcp client' 命令行工具,配置客户端 Agent 凭据和 MCP 服务器地址,即可与 MCP 服务器进行交互,具体用法请参考 'integrations/mcp/examples/client/simple_client.py' 和 'integrations/mcp/authed_mcp/client.py'。

信息

分类

AI与计算