yop-mcp


Nameyop-mcp JSON
Version 0.1.3 PyPI version JSON
download
home_pageNone
Summary快速对接易宝支付开放平台(YOP)的 MCP Server
upload_time2025-07-14 12:32:20
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseApache-2.0
keywords api mcp payment yeepay yop
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # YOP MCP Server

[![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)
[![Build Status](https://github.com/yop-platform/yop-mcp/workflows/Python%20package/badge.svg)](https://github.com/yop-platform/yop-mcp/actions)
[![Code Quality](https://github.com/yop-platform/yop-mcp/workflows/CodeQL/badge.svg)](https://github.com/yop-platform/yop-mcp/actions)
[![MCP](https://img.shields.io/badge/MCP-Server-orange.svg)](https://modelcontextprotocol.io/)

> 🚀 快速对接易宝支付开放平台(YOP)的 MCP Server

## 📖 简介

**yop-mcp** 是一个专为易宝支付开放平台(YOP)设计的 MCP (Model Context Protocol) Server,提供了一套完整的工具函数,帮助开发者通过AI助手(如Claude、Cursor等)更便捷地获取YOP平台的相关信息、生成密钥对、下载证书等操作。

### ✨ 核心特性

- 🔧 **10个专业工具函数** - 覆盖平台概览、产品详情、API文档、SDK指南等
- 🔐 **密钥管理** - 支持RSA/SM2算法的密钥对生成和证书下载
- 📚 **智能文档获取** - 自动获取最新的API文档和产品信息
- 🛡️ **安全可靠** - 内置容错机制和安全验证
- 🚀 **即插即用** - 与主流AI开发工具无缝集成

## 🛠️ 功能特点

该 MCP Server 提供以下工具函数:

### 📋 平台信息获取

1. **yeepay_yop_overview()** - 获取易宝支付开放平台(YOP)的平台规范、产品概览、接入流程和对接工具信息
2. **yeepay_yop_product_overview()** - 获取易宝支付开放平台(YOP)的所有产品的概览信息
3. **yeepay_yop_product_detail_and_associated_apis(product_code)** - 获取指定产品的介绍、使用说明和相关 API 接口列表
4. **yeepay_yop_api_detail(api_uri)** - 获取指定 API 接口的详细定义,包括基本信息、请求参数、响应参数、示例代码等

### 📚 文档和SDK指南

1. **yeepay_yop_java_sdk_user_guide()** - 获取易宝支付开放平台(YOP)的 yop-java-sdk 使用说明
2. **yeepay_yop_sdk_and_tools_guide()** - 获取易宝支付开放平台(YOP)提供的各种SDK和工具的使用说明
3. **yeepay_yop_link_detail(url)** - 获取易宝支付开放平台(YOP)的各个子页面或外部链接的详细内容

### 🔐 密钥和证书管理

1. **yeepay_yop_gen_key_pair(algorithm, format, storage_type)** - 生成非对称加密的密钥对
2. **yeepay_yop_download_cert(algorithm, serial_no, auth_code, private_key, public_key, pwd)** - 下载CFCA证书
3. **yeepay_yop_parse_certificates(algorithm, pfxCert, pubCert, pwd)** - 解析证书文件获取公钥或私钥字符串

## 📋 环境要求

- **Python**: 3.10 或更高版本
- **包管理器**: uv(推荐)或 pip
- **操作系统**: Windows / macOS / Linux

## 🚀 快速开始

### 方式一:直接使用 uvx(推荐)

**1. 安装 uv**

**Windows:**

```bash
pip install uv
```

**Linux/Mac:**

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

**2. 直接运行**

```bash
uvx yop-mcp
```

这将自动从 PyPI 下载并运行最新版本的 yop-mcp。

### 方式二:从源码安装

**1. 获取代码**

```bash
git clone http://gitlab.yeepay.com/yop/yop-mcp.git
cd yop-mcp
```

**2. 安装依赖**

```bash
uv sync  # 这将创建虚拟环境并安装所需的包
```

**3. 运行服务器**

```bash
uv run yop_mcp/main.py
```

服务器启动后,您将看到类似以下的输出:

```text
MCP Server started on stdio transport
```

## 🔧 在 AI 工具中配置

### 方式一:使用 uvx(推荐)

#### Cursor 配置

```json
{
  "mcpServers": {
    "yop-mcp": {
      "command": "uvx",
      "args": ["yop-mcp"],
      "timeout": 600,
      "autoApprove": [
        "yeepay_yop_overview",
        "yeepay_yop_product_overview",
        "yeepay_yop_product_detail_and_associated_apis",
        "yeepay_yop_api_detail",
        "yeepay_yop_java_sdk_user_guide",
        "yeepay_yop_sdk_and_tools_guide",
        "yeepay_yop_link_detail",
        "yeepay_yop_gen_key_pair",
        "yeepay_yop_download_cert",
        "yeepay_yop_parse_certificates"
      ]
    }
  }
}
```

#### Claude Desktop 配置

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "yop-mcp": {
      "command": "uvx",
      "args": ["yop-mcp"]
    }
  }
}
```

### 方式二:从源码运行

如果您选择从源码安装,请使用以下配置:

#### Cursor 配置

请记得将路径 `/Users/your-username/path/to/yop-mcp` 更改为您系统上实际克隆仓库的路径。

```json
{
  "mcpServers": {
    "yop-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/your-username/path/to/yop-mcp",
        "run",
        "yop_mcp/main.py"
      ],
      "timeout": 600,
      "autoApprove": [
        "yeepay_yop_overview",
        "yeepay_yop_product_overview",
        "yeepay_yop_product_detail_and_associated_apis",
        "yeepay_yop_api_detail",
        "yeepay_yop_java_sdk_user_guide",
        "yeepay_yop_sdk_and_tools_guide",
        "yeepay_yop_link_detail",
        "yeepay_yop_gen_key_pair",
        "yeepay_yop_download_cert",
        "yeepay_yop_parse_certificates"
      ]
    }
  }
}
```

#### Claude Desktop 配置

```json
{
  "mcpServers": {
    "yop-mcp": {
      "command": "uv",
      "args": ["--directory", "/path/to/yop-mcp", "run", "yop_mcp/main.py"]
    }
  }
}
```

## 📚 API 文档

### 1. yeepay_yop_overview()

获取易宝支付开放平台(YOP)的概览信息,包括平台规范、产品概览、接入流程和对接工具等信息。

**示例调用:**

```python
yeepay_yop_overview()
```

**返回:** YOP 平台概览信息(markdown 格式)

### 2. yeepay_yop_product_overview()

获取易宝支付开放平台(YOP)的所有产品的概览信息。

**示例调用:**

```python
yeepay_yop_product_overview()
```

**返回:** YOP 平台所有产品的概览信息(markdown 格式)

### 3. yeepay_yop_product_detail_and_associated_apis(product_code)

获取指定产品的介绍、使用说明和相关 API 接口列表。

**参数:**

- `product_code`(字符串)- 产品编码,产品的唯一标识

**示例调用:**

```python
yeepay_yop_product_detail_and_associated_apis("user-scan")
```

**返回:** 指定产品的介绍、使用说明和相关 API 接口列表(markdown 格式)

### 4. yeepay_yop_api_detail(api_uri)

获取指定 API 接口的详细定义,包含基本信息、请求参数、请求示例、响应参数、响应示例、错误码、回调、示例代码等信息。

**参数:**
- `api_uri`(字符串)- API 的 URI 路径,支持以下格式:
  - `/rest/v1.0/aggpay/pre-pay`
  - `https://open.yeepay.com/docs-v3/api/post_rest_v1.0_aggpay_pre-pay.md`
  - `https://open.yeepay.com/docs-v2/apis/user-scan/post__rest__v1.0__aggpay__pre-pay/index.html`

**示例调用:**
```
yeepay_yop_api_detail("/rest/v1.0/aggpay/pre-pay")
```

**返回:** API 接口的详细定义信息(markdown 格式)

### 5. yeepay_yop_java_sdk_user_guide()

获取易宝支付开放平台(YOP)的 yop-java-sdk 使用说明。

**示例调用:**
```
yeepay_yop_java_sdk_user_guide()
```

**返回:** yop-java-sdk 使用说明(markdown 格式)

### 6. yeepay_yop_sdk_and_tools_guide()

获取易宝支付开放平台(YOP)提供的各种SDK和工具的使用说明,以及对接最佳实践等。

**示例调用:**
```
yeepay_yop_sdk_and_tools_guide()
```

**返回:** SDK和工具的使用说明(markdown 格式)

### 7. yeepay_yop_link_detail(url)

获取易宝支付开放平台(YOP)的各个子页面或外部链接的详细内容。

**参数:**
- `url`(字符串)- 易宝支付开放平台(YOP)的子页面的URL地址

**示例调用:**
```
yeepay_yop_link_detail("https://open.yeepay.com/docs-v3/platform/201.md")
```

**返回:** 子页面的详细内容(markdown 格式)

### 8. yeepay_yop_gen_key_pair(algorithm, format, storage_type)

根据密钥算法生成非对称加密的密钥对(公钥和私钥),并保存到本地路径。

**参数:**
- `algorithm`(字符串)- 密钥算法,可选值为 "RSA" 或 "SM2",默认为 "RSA"
- `format`(字符串)- 密钥格式,可选值为 "pkcs8"或"pkcs1",默认为 "pkcs8"
- `storage_type`(字符串)- 密钥存储类型,"file"或"string",默认为 "file"

**示例调用:**
```
yeepay_yop_gen_key_pair(algorithm="SM2", format="pkcs8", storage_type="file")
```

**返回:** 生成的密钥对信息

### 9. yeepay_yop_download_cert(algorithm, serial_no, auth_code, private_key, public_key, pwd)

根据密钥算法、CFCA证书的序列号、授权码、非对称密钥对(公钥和私钥)、密码,下载该证书,并保存到本地路径。

**参数:**
- `algorithm`(字符串)- 密钥算法,可选值为 "RSA" 或 "SM2",默认为 "RSA"
- `serial_no`(字符串)- cfca证书序列号
- `auth_code`(字符串)- cfca证书授权码
- `private_key`(字符串)- Base64 编码后的私钥字符串
- `public_key`(字符串)- Base64 编码后的公钥字符串
- `pwd`(字符串)- 密码,长度:12~16位

**返回:**
```json
{
    "message": "响应信息",
    "pfxCert": "私钥证书路径(.pfx)",
    "pubCert": "公钥证书路径(.cer)"
}
```

### 10. yeepay_yop_parse_certificates(algorithm, pfxCert, pubCert, pwd)

根据证书文件解析出Base64编码后的公钥或私钥字符串。

**参数:**
- `algorithm`(字符串)- 密钥算法,可选值为 "RSA" 或 "SM2",默认为 "RSA"
- `pfxCert`(字符串)- 私钥证书(.pfx)文件路径
- `pubCert`(字符串)- 公钥证书(.cer)文件路径
- `pwd`(字符串)- PFX证书的密码,默认为None

**返回:**
```json
{
    "message": "响应信息",
    "privateKey": "Base64编码后的私钥字符串",
    "publicKey": "Base64编码后的公钥字符串"
}
```

## ❓ 常见问题

### 如何查找产品编码?

可以通过调用 `yeepay_yop_product_overview()` 获取产品概览,从中找到需要的产品编码。

### 如何获取完整的 API 列表?

先通过 `yeepay_yop_product_overview()` 获取产品编码,然后调用 `yeepay_yop_product_detail_and_associated_apis(product_code)` 获取特定产品的 API 列表。

### 接口返回错误怎么办?

系统已内置容错机制,如果特定接口请求失败,会尝试备用地址获取信息。

### 如何在不同的AI工具中使用?

本项目支持所有兼容MCP协议的AI工具,包括但不限于:
- Claude Desktop
- Cursor
- 其他支持MCP的AI开发工具

## ⚠️ 注意事项

- 所有接口返回的数据均为 markdown 格式,方便直接展示
- 确保网络连接正常,能够访问易宝支付开放平台
- 密钥和证书操作涉及敏感信息,请妥善保管
- 建议在测试环境中先验证功能后再在生产环境使用

## 🤝 贡献指南

我们欢迎所有形式的贡献!

### 如何贡献

1. Fork 本仓库
2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开一个 Pull Request

### 开发指南

1. 确保您的代码符合项目的编码规范
2. 添加适当的测试用例
3. 更新相关文档
4. 确保所有测试通过

## 📄 许可证

本项目采用 [Apache License 2.0](LICENSE) 许可证。

## 🙏 致谢

感谢所有为这个项目做出贡献的开发者!

## 📞 支持

如果您在使用过程中遇到问题,可以通过以下方式获取帮助:

- 提交 [Issue](http://gitlab.yeepay.com/yop/yop-mcp/-/issues)
- 查看 [易宝支付开放平台文档](https://open.yeepay.com/)
- 联系技术支持

## 🔗 相关链接

- [易宝支付开放平台](https://open.yeepay.com/)
- [MCP 协议文档](https://modelcontextprotocol.io/)
- [Claude Desktop](https://claude.ai/desktop)
- [Cursor](https://cursor.sh/)

---

*Made with ❤️ by YOP Team*

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "yop-mcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "YOP Team <yop@yeepay.com>",
    "keywords": "api, mcp, payment, yeepay, yop",
    "author": null,
    "author_email": "YOP Team <yop@yeepay.com>",
    "download_url": "https://files.pythonhosted.org/packages/3c/22/e6bf80fdfddd62ee6cf803887332efbba15813a77a01f9bf327bc5143cd0/yop_mcp-0.1.3.tar.gz",
    "platform": null,
    "description": "# YOP MCP Server\n\n[![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE)\n[![Build Status](https://github.com/yop-platform/yop-mcp/workflows/Python%20package/badge.svg)](https://github.com/yop-platform/yop-mcp/actions)\n[![Code Quality](https://github.com/yop-platform/yop-mcp/workflows/CodeQL/badge.svg)](https://github.com/yop-platform/yop-mcp/actions)\n[![MCP](https://img.shields.io/badge/MCP-Server-orange.svg)](https://modelcontextprotocol.io/)\n\n> \ud83d\ude80 \u5feb\u901f\u5bf9\u63a5\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684 MCP Server\n\n## \ud83d\udcd6 \u7b80\u4ecb\n\n**yop-mcp** \u662f\u4e00\u4e2a\u4e13\u4e3a\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u8bbe\u8ba1\u7684 MCP (Model Context Protocol) Server\uff0c\u63d0\u4f9b\u4e86\u4e00\u5957\u5b8c\u6574\u7684\u5de5\u5177\u51fd\u6570\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u901a\u8fc7AI\u52a9\u624b\uff08\u5982Claude\u3001Cursor\u7b49\uff09\u66f4\u4fbf\u6377\u5730\u83b7\u53d6YOP\u5e73\u53f0\u7684\u76f8\u5173\u4fe1\u606f\u3001\u751f\u6210\u5bc6\u94a5\u5bf9\u3001\u4e0b\u8f7d\u8bc1\u4e66\u7b49\u64cd\u4f5c\u3002\n\n### \u2728 \u6838\u5fc3\u7279\u6027\n\n- \ud83d\udd27 **10\u4e2a\u4e13\u4e1a\u5de5\u5177\u51fd\u6570** - \u8986\u76d6\u5e73\u53f0\u6982\u89c8\u3001\u4ea7\u54c1\u8be6\u60c5\u3001API\u6587\u6863\u3001SDK\u6307\u5357\u7b49\n- \ud83d\udd10 **\u5bc6\u94a5\u7ba1\u7406** - \u652f\u6301RSA/SM2\u7b97\u6cd5\u7684\u5bc6\u94a5\u5bf9\u751f\u6210\u548c\u8bc1\u4e66\u4e0b\u8f7d\n- \ud83d\udcda **\u667a\u80fd\u6587\u6863\u83b7\u53d6** - \u81ea\u52a8\u83b7\u53d6\u6700\u65b0\u7684API\u6587\u6863\u548c\u4ea7\u54c1\u4fe1\u606f\n- \ud83d\udee1\ufe0f **\u5b89\u5168\u53ef\u9760** - \u5185\u7f6e\u5bb9\u9519\u673a\u5236\u548c\u5b89\u5168\u9a8c\u8bc1\n- \ud83d\ude80 **\u5373\u63d2\u5373\u7528** - \u4e0e\u4e3b\u6d41AI\u5f00\u53d1\u5de5\u5177\u65e0\u7f1d\u96c6\u6210\n\n## \ud83d\udee0\ufe0f \u529f\u80fd\u7279\u70b9\n\n\u8be5 MCP Server \u63d0\u4f9b\u4ee5\u4e0b\u5de5\u5177\u51fd\u6570\uff1a\n\n### \ud83d\udccb \u5e73\u53f0\u4fe1\u606f\u83b7\u53d6\n\n1. **yeepay_yop_overview()** - \u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684\u5e73\u53f0\u89c4\u8303\u3001\u4ea7\u54c1\u6982\u89c8\u3001\u63a5\u5165\u6d41\u7a0b\u548c\u5bf9\u63a5\u5de5\u5177\u4fe1\u606f\n2. **yeepay_yop_product_overview()** - \u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684\u6240\u6709\u4ea7\u54c1\u7684\u6982\u89c8\u4fe1\u606f\n3. **yeepay_yop_product_detail_and_associated_apis(product_code)** - \u83b7\u53d6\u6307\u5b9a\u4ea7\u54c1\u7684\u4ecb\u7ecd\u3001\u4f7f\u7528\u8bf4\u660e\u548c\u76f8\u5173 API \u63a5\u53e3\u5217\u8868\n4. **yeepay_yop_api_detail(api_uri)** - \u83b7\u53d6\u6307\u5b9a API \u63a5\u53e3\u7684\u8be6\u7ec6\u5b9a\u4e49\uff0c\u5305\u62ec\u57fa\u672c\u4fe1\u606f\u3001\u8bf7\u6c42\u53c2\u6570\u3001\u54cd\u5e94\u53c2\u6570\u3001\u793a\u4f8b\u4ee3\u7801\u7b49\n\n### \ud83d\udcda \u6587\u6863\u548cSDK\u6307\u5357\n\n1. **yeepay_yop_java_sdk_user_guide()** - \u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684 yop-java-sdk \u4f7f\u7528\u8bf4\u660e\n2. **yeepay_yop_sdk_and_tools_guide()** - \u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u63d0\u4f9b\u7684\u5404\u79cdSDK\u548c\u5de5\u5177\u7684\u4f7f\u7528\u8bf4\u660e\n3. **yeepay_yop_link_detail(url)** - \u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684\u5404\u4e2a\u5b50\u9875\u9762\u6216\u5916\u90e8\u94fe\u63a5\u7684\u8be6\u7ec6\u5185\u5bb9\n\n### \ud83d\udd10 \u5bc6\u94a5\u548c\u8bc1\u4e66\u7ba1\u7406\n\n1. **yeepay_yop_gen_key_pair(algorithm, format, storage_type)** - \u751f\u6210\u975e\u5bf9\u79f0\u52a0\u5bc6\u7684\u5bc6\u94a5\u5bf9\n2. **yeepay_yop_download_cert(algorithm, serial_no, auth_code, private_key, public_key, pwd)** - \u4e0b\u8f7dCFCA\u8bc1\u4e66\n3. **yeepay_yop_parse_certificates(algorithm, pfxCert, pubCert, pwd)** - \u89e3\u6790\u8bc1\u4e66\u6587\u4ef6\u83b7\u53d6\u516c\u94a5\u6216\u79c1\u94a5\u5b57\u7b26\u4e32\n\n## \ud83d\udccb \u73af\u5883\u8981\u6c42\n\n- **Python**: 3.10 \u6216\u66f4\u9ad8\u7248\u672c\n- **\u5305\u7ba1\u7406\u5668**: uv\uff08\u63a8\u8350\uff09\u6216 pip\n- **\u64cd\u4f5c\u7cfb\u7edf**: Windows / macOS / Linux\n\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\n\n### \u65b9\u5f0f\u4e00\uff1a\u76f4\u63a5\u4f7f\u7528 uvx\uff08\u63a8\u8350\uff09\n\n**1. \u5b89\u88c5 uv**\n\n**Windows:**\n\n```bash\npip install uv\n```\n\n**Linux/Mac:**\n\n```bash\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n```\n\n**2. \u76f4\u63a5\u8fd0\u884c**\n\n```bash\nuvx yop-mcp\n```\n\n\u8fd9\u5c06\u81ea\u52a8\u4ece PyPI \u4e0b\u8f7d\u5e76\u8fd0\u884c\u6700\u65b0\u7248\u672c\u7684 yop-mcp\u3002\n\n### \u65b9\u5f0f\u4e8c\uff1a\u4ece\u6e90\u7801\u5b89\u88c5\n\n**1. \u83b7\u53d6\u4ee3\u7801**\n\n```bash\ngit clone http://gitlab.yeepay.com/yop/yop-mcp.git\ncd yop-mcp\n```\n\n**2. \u5b89\u88c5\u4f9d\u8d56**\n\n```bash\nuv sync  # \u8fd9\u5c06\u521b\u5efa\u865a\u62df\u73af\u5883\u5e76\u5b89\u88c5\u6240\u9700\u7684\u5305\n```\n\n**3. \u8fd0\u884c\u670d\u52a1\u5668**\n\n```bash\nuv run yop_mcp/main.py\n```\n\n\u670d\u52a1\u5668\u542f\u52a8\u540e\uff0c\u60a8\u5c06\u770b\u5230\u7c7b\u4f3c\u4ee5\u4e0b\u7684\u8f93\u51fa\uff1a\n\n```text\nMCP Server started on stdio transport\n```\n\n## \ud83d\udd27 \u5728 AI \u5de5\u5177\u4e2d\u914d\u7f6e\n\n### \u65b9\u5f0f\u4e00\uff1a\u4f7f\u7528 uvx\uff08\u63a8\u8350\uff09\n\n#### Cursor \u914d\u7f6e\n\n```json\n{\n  \"mcpServers\": {\n    \"yop-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\"yop-mcp\"],\n      \"timeout\": 600,\n      \"autoApprove\": [\n        \"yeepay_yop_overview\",\n        \"yeepay_yop_product_overview\",\n        \"yeepay_yop_product_detail_and_associated_apis\",\n        \"yeepay_yop_api_detail\",\n        \"yeepay_yop_java_sdk_user_guide\",\n        \"yeepay_yop_sdk_and_tools_guide\",\n        \"yeepay_yop_link_detail\",\n        \"yeepay_yop_gen_key_pair\",\n        \"yeepay_yop_download_cert\",\n        \"yeepay_yop_parse_certificates\"\n      ]\n    }\n  }\n}\n```\n\n#### Claude Desktop \u914d\u7f6e\n\n**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"yop-mcp\": {\n      \"command\": \"uvx\",\n      \"args\": [\"yop-mcp\"]\n    }\n  }\n}\n```\n\n### \u65b9\u5f0f\u4e8c\uff1a\u4ece\u6e90\u7801\u8fd0\u884c\n\n\u5982\u679c\u60a8\u9009\u62e9\u4ece\u6e90\u7801\u5b89\u88c5\uff0c\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u914d\u7f6e\uff1a\n\n#### Cursor \u914d\u7f6e\n\n\u8bf7\u8bb0\u5f97\u5c06\u8def\u5f84 `/Users/your-username/path/to/yop-mcp` \u66f4\u6539\u4e3a\u60a8\u7cfb\u7edf\u4e0a\u5b9e\u9645\u514b\u9686\u4ed3\u5e93\u7684\u8def\u5f84\u3002\n\n```json\n{\n  \"mcpServers\": {\n    \"yop-mcp\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\",\n        \"/Users/your-username/path/to/yop-mcp\",\n        \"run\",\n        \"yop_mcp/main.py\"\n      ],\n      \"timeout\": 600,\n      \"autoApprove\": [\n        \"yeepay_yop_overview\",\n        \"yeepay_yop_product_overview\",\n        \"yeepay_yop_product_detail_and_associated_apis\",\n        \"yeepay_yop_api_detail\",\n        \"yeepay_yop_java_sdk_user_guide\",\n        \"yeepay_yop_sdk_and_tools_guide\",\n        \"yeepay_yop_link_detail\",\n        \"yeepay_yop_gen_key_pair\",\n        \"yeepay_yop_download_cert\",\n        \"yeepay_yop_parse_certificates\"\n      ]\n    }\n  }\n}\n```\n\n#### Claude Desktop \u914d\u7f6e\n\n```json\n{\n  \"mcpServers\": {\n    \"yop-mcp\": {\n      \"command\": \"uv\",\n      \"args\": [\"--directory\", \"/path/to/yop-mcp\", \"run\", \"yop_mcp/main.py\"]\n    }\n  }\n}\n```\n\n## \ud83d\udcda API \u6587\u6863\n\n### 1. yeepay_yop_overview()\n\n\u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684\u6982\u89c8\u4fe1\u606f\uff0c\u5305\u62ec\u5e73\u53f0\u89c4\u8303\u3001\u4ea7\u54c1\u6982\u89c8\u3001\u63a5\u5165\u6d41\u7a0b\u548c\u5bf9\u63a5\u5de5\u5177\u7b49\u4fe1\u606f\u3002\n\n**\u793a\u4f8b\u8c03\u7528\uff1a**\n\n```python\nyeepay_yop_overview()\n```\n\n**\u8fd4\u56de\uff1a** YOP \u5e73\u53f0\u6982\u89c8\u4fe1\u606f\uff08markdown \u683c\u5f0f\uff09\n\n### 2. yeepay_yop_product_overview()\n\n\u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684\u6240\u6709\u4ea7\u54c1\u7684\u6982\u89c8\u4fe1\u606f\u3002\n\n**\u793a\u4f8b\u8c03\u7528\uff1a**\n\n```python\nyeepay_yop_product_overview()\n```\n\n**\u8fd4\u56de\uff1a** YOP \u5e73\u53f0\u6240\u6709\u4ea7\u54c1\u7684\u6982\u89c8\u4fe1\u606f\uff08markdown \u683c\u5f0f\uff09\n\n### 3. yeepay_yop_product_detail_and_associated_apis(product_code)\n\n\u83b7\u53d6\u6307\u5b9a\u4ea7\u54c1\u7684\u4ecb\u7ecd\u3001\u4f7f\u7528\u8bf4\u660e\u548c\u76f8\u5173 API \u63a5\u53e3\u5217\u8868\u3002\n\n**\u53c2\u6570\uff1a**\n\n- `product_code`\uff08\u5b57\u7b26\u4e32\uff09- \u4ea7\u54c1\u7f16\u7801\uff0c\u4ea7\u54c1\u7684\u552f\u4e00\u6807\u8bc6\n\n**\u793a\u4f8b\u8c03\u7528\uff1a**\n\n```python\nyeepay_yop_product_detail_and_associated_apis(\"user-scan\")\n```\n\n**\u8fd4\u56de\uff1a** \u6307\u5b9a\u4ea7\u54c1\u7684\u4ecb\u7ecd\u3001\u4f7f\u7528\u8bf4\u660e\u548c\u76f8\u5173 API \u63a5\u53e3\u5217\u8868\uff08markdown \u683c\u5f0f\uff09\n\n### 4. yeepay_yop_api_detail(api_uri)\n\n\u83b7\u53d6\u6307\u5b9a API \u63a5\u53e3\u7684\u8be6\u7ec6\u5b9a\u4e49\uff0c\u5305\u542b\u57fa\u672c\u4fe1\u606f\u3001\u8bf7\u6c42\u53c2\u6570\u3001\u8bf7\u6c42\u793a\u4f8b\u3001\u54cd\u5e94\u53c2\u6570\u3001\u54cd\u5e94\u793a\u4f8b\u3001\u9519\u8bef\u7801\u3001\u56de\u8c03\u3001\u793a\u4f8b\u4ee3\u7801\u7b49\u4fe1\u606f\u3002\n\n**\u53c2\u6570\uff1a**\n- `api_uri`\uff08\u5b57\u7b26\u4e32\uff09- API \u7684 URI \u8def\u5f84\uff0c\u652f\u6301\u4ee5\u4e0b\u683c\u5f0f\uff1a\n  - `/rest/v1.0/aggpay/pre-pay`\n  - `https://open.yeepay.com/docs-v3/api/post_rest_v1.0_aggpay_pre-pay.md`\n  - `https://open.yeepay.com/docs-v2/apis/user-scan/post__rest__v1.0__aggpay__pre-pay/index.html`\n\n**\u793a\u4f8b\u8c03\u7528\uff1a**\n```\nyeepay_yop_api_detail(\"/rest/v1.0/aggpay/pre-pay\")\n```\n\n**\u8fd4\u56de\uff1a** API \u63a5\u53e3\u7684\u8be6\u7ec6\u5b9a\u4e49\u4fe1\u606f\uff08markdown \u683c\u5f0f\uff09\n\n### 5. yeepay_yop_java_sdk_user_guide()\n\n\u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684 yop-java-sdk \u4f7f\u7528\u8bf4\u660e\u3002\n\n**\u793a\u4f8b\u8c03\u7528\uff1a**\n```\nyeepay_yop_java_sdk_user_guide()\n```\n\n**\u8fd4\u56de\uff1a** yop-java-sdk \u4f7f\u7528\u8bf4\u660e\uff08markdown \u683c\u5f0f\uff09\n\n### 6. yeepay_yop_sdk_and_tools_guide()\n\n\u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u63d0\u4f9b\u7684\u5404\u79cdSDK\u548c\u5de5\u5177\u7684\u4f7f\u7528\u8bf4\u660e\uff0c\u4ee5\u53ca\u5bf9\u63a5\u6700\u4f73\u5b9e\u8df5\u7b49\u3002\n\n**\u793a\u4f8b\u8c03\u7528\uff1a**\n```\nyeepay_yop_sdk_and_tools_guide()\n```\n\n**\u8fd4\u56de\uff1a** SDK\u548c\u5de5\u5177\u7684\u4f7f\u7528\u8bf4\u660e\uff08markdown \u683c\u5f0f\uff09\n\n### 7. yeepay_yop_link_detail(url)\n\n\u83b7\u53d6\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684\u5404\u4e2a\u5b50\u9875\u9762\u6216\u5916\u90e8\u94fe\u63a5\u7684\u8be6\u7ec6\u5185\u5bb9\u3002\n\n**\u53c2\u6570\uff1a**\n- `url`\uff08\u5b57\u7b26\u4e32\uff09- \u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684\u5b50\u9875\u9762\u7684URL\u5730\u5740\n\n**\u793a\u4f8b\u8c03\u7528\uff1a**\n```\nyeepay_yop_link_detail(\"https://open.yeepay.com/docs-v3/platform/201.md\")\n```\n\n**\u8fd4\u56de\uff1a** \u5b50\u9875\u9762\u7684\u8be6\u7ec6\u5185\u5bb9\uff08markdown \u683c\u5f0f\uff09\n\n### 8. yeepay_yop_gen_key_pair(algorithm, format, storage_type)\n\n\u6839\u636e\u5bc6\u94a5\u7b97\u6cd5\u751f\u6210\u975e\u5bf9\u79f0\u52a0\u5bc6\u7684\u5bc6\u94a5\u5bf9\uff08\u516c\u94a5\u548c\u79c1\u94a5\uff09\uff0c\u5e76\u4fdd\u5b58\u5230\u672c\u5730\u8def\u5f84\u3002\n\n**\u53c2\u6570\uff1a**\n- `algorithm`\uff08\u5b57\u7b26\u4e32\uff09- \u5bc6\u94a5\u7b97\u6cd5\uff0c\u53ef\u9009\u503c\u4e3a \"RSA\" \u6216 \"SM2\"\uff0c\u9ed8\u8ba4\u4e3a \"RSA\"\n- `format`\uff08\u5b57\u7b26\u4e32\uff09- \u5bc6\u94a5\u683c\u5f0f\uff0c\u53ef\u9009\u503c\u4e3a \"pkcs8\"\u6216\"pkcs1\"\uff0c\u9ed8\u8ba4\u4e3a \"pkcs8\"\n- `storage_type`\uff08\u5b57\u7b26\u4e32\uff09- \u5bc6\u94a5\u5b58\u50a8\u7c7b\u578b\uff0c\"file\"\u6216\"string\"\uff0c\u9ed8\u8ba4\u4e3a \"file\"\n\n**\u793a\u4f8b\u8c03\u7528\uff1a**\n```\nyeepay_yop_gen_key_pair(algorithm=\"SM2\", format=\"pkcs8\", storage_type=\"file\")\n```\n\n**\u8fd4\u56de\uff1a** \u751f\u6210\u7684\u5bc6\u94a5\u5bf9\u4fe1\u606f\n\n### 9. yeepay_yop_download_cert(algorithm, serial_no, auth_code, private_key, public_key, pwd)\n\n\u6839\u636e\u5bc6\u94a5\u7b97\u6cd5\u3001CFCA\u8bc1\u4e66\u7684\u5e8f\u5217\u53f7\u3001\u6388\u6743\u7801\u3001\u975e\u5bf9\u79f0\u5bc6\u94a5\u5bf9\uff08\u516c\u94a5\u548c\u79c1\u94a5\uff09\u3001\u5bc6\u7801\uff0c\u4e0b\u8f7d\u8be5\u8bc1\u4e66\uff0c\u5e76\u4fdd\u5b58\u5230\u672c\u5730\u8def\u5f84\u3002\n\n**\u53c2\u6570\uff1a**\n- `algorithm`\uff08\u5b57\u7b26\u4e32\uff09- \u5bc6\u94a5\u7b97\u6cd5\uff0c\u53ef\u9009\u503c\u4e3a \"RSA\" \u6216 \"SM2\"\uff0c\u9ed8\u8ba4\u4e3a \"RSA\"\n- `serial_no`\uff08\u5b57\u7b26\u4e32\uff09- cfca\u8bc1\u4e66\u5e8f\u5217\u53f7\n- `auth_code`\uff08\u5b57\u7b26\u4e32\uff09- cfca\u8bc1\u4e66\u6388\u6743\u7801\n- `private_key`\uff08\u5b57\u7b26\u4e32\uff09- Base64 \u7f16\u7801\u540e\u7684\u79c1\u94a5\u5b57\u7b26\u4e32\n- `public_key`\uff08\u5b57\u7b26\u4e32\uff09- Base64 \u7f16\u7801\u540e\u7684\u516c\u94a5\u5b57\u7b26\u4e32\n- `pwd`\uff08\u5b57\u7b26\u4e32\uff09- \u5bc6\u7801\uff0c\u957f\u5ea6\uff1a12~16\u4f4d\n\n**\u8fd4\u56de\uff1a**\n```json\n{\n    \"message\": \"\u54cd\u5e94\u4fe1\u606f\",\n    \"pfxCert\": \"\u79c1\u94a5\u8bc1\u4e66\u8def\u5f84(.pfx)\",\n    \"pubCert\": \"\u516c\u94a5\u8bc1\u4e66\u8def\u5f84(.cer)\"\n}\n```\n\n### 10. yeepay_yop_parse_certificates(algorithm, pfxCert, pubCert, pwd)\n\n\u6839\u636e\u8bc1\u4e66\u6587\u4ef6\u89e3\u6790\u51faBase64\u7f16\u7801\u540e\u7684\u516c\u94a5\u6216\u79c1\u94a5\u5b57\u7b26\u4e32\u3002\n\n**\u53c2\u6570\uff1a**\n- `algorithm`\uff08\u5b57\u7b26\u4e32\uff09- \u5bc6\u94a5\u7b97\u6cd5\uff0c\u53ef\u9009\u503c\u4e3a \"RSA\" \u6216 \"SM2\"\uff0c\u9ed8\u8ba4\u4e3a \"RSA\"\n- `pfxCert`\uff08\u5b57\u7b26\u4e32\uff09- \u79c1\u94a5\u8bc1\u4e66\uff08.pfx\uff09\u6587\u4ef6\u8def\u5f84\n- `pubCert`\uff08\u5b57\u7b26\u4e32\uff09- \u516c\u94a5\u8bc1\u4e66\uff08.cer\uff09\u6587\u4ef6\u8def\u5f84\n- `pwd`\uff08\u5b57\u7b26\u4e32\uff09- PFX\u8bc1\u4e66\u7684\u5bc6\u7801\uff0c\u9ed8\u8ba4\u4e3aNone\n\n**\u8fd4\u56de\uff1a**\n```json\n{\n    \"message\": \"\u54cd\u5e94\u4fe1\u606f\",\n    \"privateKey\": \"Base64\u7f16\u7801\u540e\u7684\u79c1\u94a5\u5b57\u7b26\u4e32\",\n    \"publicKey\": \"Base64\u7f16\u7801\u540e\u7684\u516c\u94a5\u5b57\u7b26\u4e32\"\n}\n```\n\n## \u2753 \u5e38\u89c1\u95ee\u9898\n\n### \u5982\u4f55\u67e5\u627e\u4ea7\u54c1\u7f16\u7801\uff1f\n\n\u53ef\u4ee5\u901a\u8fc7\u8c03\u7528 `yeepay_yop_product_overview()` \u83b7\u53d6\u4ea7\u54c1\u6982\u89c8\uff0c\u4ece\u4e2d\u627e\u5230\u9700\u8981\u7684\u4ea7\u54c1\u7f16\u7801\u3002\n\n### \u5982\u4f55\u83b7\u53d6\u5b8c\u6574\u7684 API \u5217\u8868\uff1f\n\n\u5148\u901a\u8fc7 `yeepay_yop_product_overview()` \u83b7\u53d6\u4ea7\u54c1\u7f16\u7801\uff0c\u7136\u540e\u8c03\u7528 `yeepay_yop_product_detail_and_associated_apis(product_code)` \u83b7\u53d6\u7279\u5b9a\u4ea7\u54c1\u7684 API \u5217\u8868\u3002\n\n### \u63a5\u53e3\u8fd4\u56de\u9519\u8bef\u600e\u4e48\u529e\uff1f\n\n\u7cfb\u7edf\u5df2\u5185\u7f6e\u5bb9\u9519\u673a\u5236\uff0c\u5982\u679c\u7279\u5b9a\u63a5\u53e3\u8bf7\u6c42\u5931\u8d25\uff0c\u4f1a\u5c1d\u8bd5\u5907\u7528\u5730\u5740\u83b7\u53d6\u4fe1\u606f\u3002\n\n### \u5982\u4f55\u5728\u4e0d\u540c\u7684AI\u5de5\u5177\u4e2d\u4f7f\u7528\uff1f\n\n\u672c\u9879\u76ee\u652f\u6301\u6240\u6709\u517c\u5bb9MCP\u534f\u8bae\u7684AI\u5de5\u5177\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a\n- Claude Desktop\n- Cursor\n- \u5176\u4ed6\u652f\u6301MCP\u7684AI\u5f00\u53d1\u5de5\u5177\n\n## \u26a0\ufe0f \u6ce8\u610f\u4e8b\u9879\n\n- \u6240\u6709\u63a5\u53e3\u8fd4\u56de\u7684\u6570\u636e\u5747\u4e3a markdown \u683c\u5f0f\uff0c\u65b9\u4fbf\u76f4\u63a5\u5c55\u793a\n- \u786e\u4fdd\u7f51\u7edc\u8fde\u63a5\u6b63\u5e38\uff0c\u80fd\u591f\u8bbf\u95ee\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0\n- \u5bc6\u94a5\u548c\u8bc1\u4e66\u64cd\u4f5c\u6d89\u53ca\u654f\u611f\u4fe1\u606f\uff0c\u8bf7\u59a5\u5584\u4fdd\u7ba1\n- \u5efa\u8bae\u5728\u6d4b\u8bd5\u73af\u5883\u4e2d\u5148\u9a8c\u8bc1\u529f\u80fd\u540e\u518d\u5728\u751f\u4ea7\u73af\u5883\u4f7f\u7528\n\n## \ud83e\udd1d \u8d21\u732e\u6307\u5357\n\n\u6211\u4eec\u6b22\u8fce\u6240\u6709\u5f62\u5f0f\u7684\u8d21\u732e\uff01\n\n### \u5982\u4f55\u8d21\u732e\n\n1. Fork \u672c\u4ed3\u5e93\n2. \u521b\u5efa\u60a8\u7684\u7279\u6027\u5206\u652f (`git checkout -b feature/AmazingFeature`)\n3. \u63d0\u4ea4\u60a8\u7684\u66f4\u6539 (`git commit -m 'Add some AmazingFeature'`)\n4. \u63a8\u9001\u5230\u5206\u652f (`git push origin feature/AmazingFeature`)\n5. \u6253\u5f00\u4e00\u4e2a Pull Request\n\n### \u5f00\u53d1\u6307\u5357\n\n1. \u786e\u4fdd\u60a8\u7684\u4ee3\u7801\u7b26\u5408\u9879\u76ee\u7684\u7f16\u7801\u89c4\u8303\n2. \u6dfb\u52a0\u9002\u5f53\u7684\u6d4b\u8bd5\u7528\u4f8b\n3. \u66f4\u65b0\u76f8\u5173\u6587\u6863\n4. \u786e\u4fdd\u6240\u6709\u6d4b\u8bd5\u901a\u8fc7\n\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\n\n\u672c\u9879\u76ee\u91c7\u7528 [Apache License 2.0](LICENSE) \u8bb8\u53ef\u8bc1\u3002\n\n## \ud83d\ude4f \u81f4\u8c22\n\n\u611f\u8c22\u6240\u6709\u4e3a\u8fd9\u4e2a\u9879\u76ee\u505a\u51fa\u8d21\u732e\u7684\u5f00\u53d1\u8005\uff01\n\n## \ud83d\udcde \u652f\u6301\n\n\u5982\u679c\u60a8\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u9047\u5230\u95ee\u9898\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u83b7\u53d6\u5e2e\u52a9\uff1a\n\n- \u63d0\u4ea4 [Issue](http://gitlab.yeepay.com/yop/yop-mcp/-/issues)\n- \u67e5\u770b [\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0\u6587\u6863](https://open.yeepay.com/)\n- \u8054\u7cfb\u6280\u672f\u652f\u6301\n\n## \ud83d\udd17 \u76f8\u5173\u94fe\u63a5\n\n- [\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0](https://open.yeepay.com/)\n- [MCP \u534f\u8bae\u6587\u6863](https://modelcontextprotocol.io/)\n- [Claude Desktop](https://claude.ai/desktop)\n- [Cursor](https://cursor.sh/)\n\n---\n\n*Made with \u2764\ufe0f by YOP Team*\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "\u5feb\u901f\u5bf9\u63a5\u6613\u5b9d\u652f\u4ed8\u5f00\u653e\u5e73\u53f0(YOP)\u7684 MCP Server",
    "version": "0.1.3",
    "project_urls": {
        "Changelog": "http://gitlab.yeepay.com/yop/yop-mcp/-/blob/main/CHANGELOG.md",
        "Documentation": "https://open.yeepay.com/docs",
        "Homepage": "https://open.yeepay.com",
        "Issues": "http://gitlab.yeepay.com/yop/yop-mcp/-/issues",
        "Repository": "http://gitlab.yeepay.com/yop/yop-mcp.git"
    },
    "split_keywords": [
        "api",
        " mcp",
        " payment",
        " yeepay",
        " yop"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c8779af792967459232e05eca5fcfd635994f2177abe245c9954bceb4c201fc1",
                "md5": "56c26c25a28e437f97af3985e0f8360a",
                "sha256": "a46ba09e5fc20f1c29a60f2d2c44996712e1a99a3c202d6f16dbfad7dfff813d"
            },
            "downloads": -1,
            "filename": "yop_mcp-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "56c26c25a28e437f97af3985e0f8360a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 30829,
            "upload_time": "2025-07-14T12:32:17",
            "upload_time_iso_8601": "2025-07-14T12:32:17.366437Z",
            "url": "https://files.pythonhosted.org/packages/c8/77/9af792967459232e05eca5fcfd635994f2177abe245c9954bceb4c201fc1/yop_mcp-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3c22e6bf80fdfddd62ee6cf803887332efbba15813a77a01f9bf327bc5143cd0",
                "md5": "503d4c485d6e14711109a9db424f2af6",
                "sha256": "a259d138cdb0b6ddc396d75fbaecaf827036e10c16da922025477c6ee51c8349"
            },
            "downloads": -1,
            "filename": "yop_mcp-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "503d4c485d6e14711109a9db424f2af6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 65531,
            "upload_time": "2025-07-14T12:32:20",
            "upload_time_iso_8601": "2025-07-14T12:32:20.448806Z",
            "url": "https://files.pythonhosted.org/packages/3c/22/e6bf80fdfddd62ee6cf803887332efbba15813a77a01f9bf327bc5143cd0/yop_mcp-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-14 12:32:20",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "yop-mcp"
}
        
Elapsed time: 1.79153s