Skip to main content
Glama

MCP2ANP Bridge Server

ENV_CONFIG.md5.14 kB
# 环境变量配置说明 ## DID 认证凭证配置 MCP2ANP 服务器在启动时需要 DID 认证凭证。可以通过以下环境变量配置: ### 环境变量 - `ANP_DID_DOCUMENT_PATH`: DID 文档 JSON 文件的完整路径 - `ANP_DID_PRIVATE_KEY_PATH`: DID 私钥 PEM 文件的完整路径 ### 配置方式 #### 方式 1: 使用默认凭证(推荐开发测试) 如果不设置环境变量,服务器将自动使用项目提供的默认公共 DID 凭证: ```bash # 直接启动,使用默认凭证 uv run python -m mcp2anp.server ``` 默认凭证位置: - DID 文档: `docs/did_public/public-did-doc.json` - 私钥: `docs/did_public/public-private-key.pem` #### 方式 2: 通过环境变量配置(推荐生产环境) **Linux/macOS:** ```bash # 临时设置(当前会话) export ANP_DID_DOCUMENT_PATH="/path/to/your/did-document.json" export ANP_DID_PRIVATE_KEY_PATH="/path/to/your/private-key.pem" uv run python -m mcp2anp.server # 或者一次性设置 ANP_DID_DOCUMENT_PATH="/path/to/your/did-document.json" \ ANP_DID_PRIVATE_KEY_PATH="/path/to/your/private-key.pem" \ uv run python -m mcp2anp.server ``` **Windows (PowerShell):** ```powershell $env:ANP_DID_DOCUMENT_PATH="C:\path\to\your\did-document.json" $env:ANP_DID_PRIVATE_KEY_PATH="C:\path\to\your\private-key.pem" uv run python -m mcp2anp.server ``` **Windows (CMD):** ```cmd set ANP_DID_DOCUMENT_PATH=C:\path\to\your\did-document.json set ANP_DID_PRIVATE_KEY_PATH=C:\path\to\your\private-key.pem uv run python -m mcp2anp.server ``` #### 方式 3: 使用 .env 文件 创建 `.env` 文件(在项目根目录): ```bash # .env ANP_DID_DOCUMENT_PATH=/path/to/your/did-document.json ANP_DID_PRIVATE_KEY_PATH=/path/to/your/private-key.pem ``` 然后使用支持 `.env` 文件的工具启动: ```bash # 使用 python-dotenv pip install python-dotenv python -c "from dotenv import load_dotenv; load_dotenv()" && uv run python -m mcp2anp.server # 或者使用 direnv (需要先安装 direnv) direnv allow uv run python -m mcp2anp.server ``` ## 验证配置 启动服务器时,日志会显示使用的凭证来源: ``` # 使用默认凭证 Using default DID credentials did_doc=docs/did_public/public-did-doc.json private_key=docs/did_public/public-private-key.pem # 使用环境变量凭证 Using DID credentials from environment variables did_doc=/custom/path/did.json private_key=/custom/path/key.pem ``` ## 创建自定义 DID 凭证 ### 1. 准备 DID 文档 创建符合 W3C DID 规范的 JSON 文档,例如: ```json { "@context": [ "https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/jws-2020/v1" ], "id": "did:example:your-did-identifier", "verificationMethod": [ { "id": "did:example:your-did-identifier#key-1", "type": "EcdsaSecp256k1VerificationKey2019", "controller": "did:example:your-did-identifier", "publicKeyJwk": { "kty": "EC", "crv": "secp256k1", "x": "...", "y": "..." } } ], "authentication": [ "did:example:your-did-identifier#key-1" ] } ``` ### 2. 准备私钥文件 私钥应为 PEM 格式: ``` -----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY----- ``` ### 3. 配置环境变量 将 DID 文档和私钥文件保存到安全位置,然后配置环境变量指向这些文件。 ## 安全建议 1. **不要将私钥提交到版本控制**: 将 `*.pem` 添加到 `.gitignore` 2. **生产环境使用专用凭证**: 不要在生产环境使用默认的公共凭证 3. **限制文件权限**: ```bash chmod 600 /path/to/private-key.pem # 仅所有者可读写 ``` 4. **使用环境变量或密钥管理系统**: 避免在代码中硬编码路径 ## 故障排查 ### 问题: ANPCrawler 初始化失败 ``` Failed to initialize ANPCrawler error=... ``` **解决方案:** 1. 检查 DID 文档和私钥文件是否存在 2. 检查文件路径是否正确(使用绝对路径) 3. 检查文件权限(是否可读) 4. 验证 DID 文档 JSON 格式是否正确 5. 验证私钥 PEM 格式是否正确 ### 问题: 工具调用返回 ANP_NOT_INITIALIZED ```json { "ok": false, "error": { "code": "ANP_NOT_INITIALIZED", "message": "ANPCrawler not initialized. Please check DID credentials." } } ``` **解决方案:** 1. 检查服务器启动日志,确认 ANPCrawler 是否成功初始化 2. 检查 DID 凭证配置是否正确 3. 重启服务器 ## 示例 ### 开发环境(使用默认凭证) ```bash # 直接启动 uv run python -m mcp2anp.server --log-level DEBUG ``` ### 生产环境(使用自定义凭证) ```bash # 设置环境变量 export ANP_DID_DOCUMENT_PATH="/etc/mcp2anp/production-did.json" export ANP_DID_PRIVATE_KEY_PATH="/etc/mcp2anp/production-key.pem" # 启动服务器 uv run python -m mcp2anp.server --log-level INFO ``` ### 使用客户端(环境变量会传递给服务器) ```bash # 设置环境变量 export ANP_DID_DOCUMENT_PATH="/path/to/your/did.json" export ANP_DID_PRIVATE_KEY_PATH="/path/to/your/key.pem" # 运行客户端(会启动服务器) uv run python examples/mcp_client_demo.py ```

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/agent-network-protocol/mcp2anp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server