yu-terms-mcp-server


Nameyu-terms-mcp-server JSON
Version 1.0.5 PyPI version JSON
download
home_pageNone
SummaryA Python MCP server for terms management functionality
upload_time2025-08-13 03:05:54
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords mcp server terms management
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Yu Terms MCP Server

一个基于Python的MCP (Model Context Protocol) 服务器,用于条款管理功能。这是Java Spring AI实现的Python等价版本。

## 功能特性

- **条款更新工具**: 提供更新条款要素的接口
- **MCP协议支持**: 完全兼容MCP协议规范
- **异步处理**: 基于asyncio的高性能异步处理
- **易于扩展**: 模块化设计,便于添加新的工具和功能
- **完整日志**: 详细的日志记录,便于调试和监控

## 安装

### 从PyPI安装

```bash
pip install yu-terms-mcp-server
```

### 从源码安装

```bash
git clone https://github.com/yourusername/yu-terms-mcp-server.git
cd yu-terms-mcp-server
pip install -e .
```

## 使用方法

### 命令行启动

```bash
yu-terms-mcp-server
```

### 程序化使用

```python
import asyncio
from yu_terms_mcp_server import TermsMcpServer

async def main():
    server = TermsMcpServer()
    await server.run()

if __name__ == "__main__":
    asyncio.run(main())
```

## 工具说明

### terms_updated

更新条款要素的主要工具。

**参数:**
- `query` (string): 更新参数

**返回:**
- 成功时返回: "更新成功!"
- 失败时返回: 错误信息

**示例:**
```json
{
  "name": "terms_updated",
  "arguments": {
    "query": "更新条款内容"
  }
}
```

## 开发

### 环境设置

```bash
# 克隆仓库
git clone https://github.com/yourusername/yu-terms-mcp-server.git
cd yu-terms-mcp-server

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
venv\Scripts\activate  # Windows

# 安装开发依赖
pip install -e ".[dev]"
```

### 运行测试

```bash
pytest
```

### 代码格式化

```bash
black yu_terms_mcp_server/
isort yu_terms_mcp_server/
```

### 类型检查

```bash
mypy yu_terms_mcp_server/
```

## 项目结构

```
yu_terms_mcp_server/
├── __init__.py          # 包初始化
├── main.py             # 主入口点
├── server.py           # MCP服务器实现
└── tools.py            # 工具实现
```

## 与Java版本的对应关系

| Java组件 | Python组件 | 说明 |
|---------|-----------|------|
| `TermsUpdatedTool.java` | `tools.py` | 条款更新工具实现 |
| `YuImageSearchMcpServerApplication.java` | `server.py` | 主应用程序和服务器配置 |
| `@Tool` 注解 | `get_tool_definition()` | 工具定义和注册 |
| `@Service` 注解 | 类实例化 | 服务组件管理 |
| `SpringApplication.run()` | `server.run()` | 应用程序启动 |

## 配置

服务器默认使用stdio进行通信,这是MCP协议的标准方式。如需自定义配置,可以修改`server.py`中的相关设置。

## 日志

应用程序使用Python标准logging模块。日志级别默认为INFO,输出到stderr。

## 许可证

MIT License

## 贡献

欢迎提交Issue和Pull Request!

## 更新日志

### v1.0.0
- 初始版本发布
- 实现基础的条款更新功能
- 完整的MCP协议支持

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "yu-terms-mcp-server",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "mcp, server, terms, management",
    "author": null,
    "author_email": "YuPi <your-email@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/45/79/a0fbdac09797e9272689686e8d967342497cb3c216638a1981b0f9d3060d/yu_terms_mcp_server-1.0.5.tar.gz",
    "platform": null,
    "description": "# Yu Terms MCP Server\r\n\r\n\u4e00\u4e2a\u57fa\u4e8ePython\u7684MCP (Model Context Protocol) \u670d\u52a1\u5668\uff0c\u7528\u4e8e\u6761\u6b3e\u7ba1\u7406\u529f\u80fd\u3002\u8fd9\u662fJava Spring AI\u5b9e\u73b0\u7684Python\u7b49\u4ef7\u7248\u672c\u3002\r\n\r\n## \u529f\u80fd\u7279\u6027\r\n\r\n- **\u6761\u6b3e\u66f4\u65b0\u5de5\u5177**: \u63d0\u4f9b\u66f4\u65b0\u6761\u6b3e\u8981\u7d20\u7684\u63a5\u53e3\r\n- **MCP\u534f\u8bae\u652f\u6301**: \u5b8c\u5168\u517c\u5bb9MCP\u534f\u8bae\u89c4\u8303\r\n- **\u5f02\u6b65\u5904\u7406**: \u57fa\u4e8easyncio\u7684\u9ad8\u6027\u80fd\u5f02\u6b65\u5904\u7406\r\n- **\u6613\u4e8e\u6269\u5c55**: \u6a21\u5757\u5316\u8bbe\u8ba1\uff0c\u4fbf\u4e8e\u6dfb\u52a0\u65b0\u7684\u5de5\u5177\u548c\u529f\u80fd\r\n- **\u5b8c\u6574\u65e5\u5fd7**: \u8be6\u7ec6\u7684\u65e5\u5fd7\u8bb0\u5f55\uff0c\u4fbf\u4e8e\u8c03\u8bd5\u548c\u76d1\u63a7\r\n\r\n## \u5b89\u88c5\r\n\r\n### \u4ecePyPI\u5b89\u88c5\r\n\r\n```bash\r\npip install yu-terms-mcp-server\r\n```\r\n\r\n### \u4ece\u6e90\u7801\u5b89\u88c5\r\n\r\n```bash\r\ngit clone https://github.com/yourusername/yu-terms-mcp-server.git\r\ncd yu-terms-mcp-server\r\npip install -e .\r\n```\r\n\r\n## \u4f7f\u7528\u65b9\u6cd5\r\n\r\n### \u547d\u4ee4\u884c\u542f\u52a8\r\n\r\n```bash\r\nyu-terms-mcp-server\r\n```\r\n\r\n### \u7a0b\u5e8f\u5316\u4f7f\u7528\r\n\r\n```python\r\nimport asyncio\r\nfrom yu_terms_mcp_server import TermsMcpServer\r\n\r\nasync def main():\r\n    server = TermsMcpServer()\r\n    await server.run()\r\n\r\nif __name__ == \"__main__\":\r\n    asyncio.run(main())\r\n```\r\n\r\n## \u5de5\u5177\u8bf4\u660e\r\n\r\n### terms_updated\r\n\r\n\u66f4\u65b0\u6761\u6b3e\u8981\u7d20\u7684\u4e3b\u8981\u5de5\u5177\u3002\r\n\r\n**\u53c2\u6570:**\r\n- `query` (string): \u66f4\u65b0\u53c2\u6570\r\n\r\n**\u8fd4\u56de:**\r\n- \u6210\u529f\u65f6\u8fd4\u56de: \"\u66f4\u65b0\u6210\u529f\uff01\"\r\n- \u5931\u8d25\u65f6\u8fd4\u56de: \u9519\u8bef\u4fe1\u606f\r\n\r\n**\u793a\u4f8b:**\r\n```json\r\n{\r\n  \"name\": \"terms_updated\",\r\n  \"arguments\": {\r\n    \"query\": \"\u66f4\u65b0\u6761\u6b3e\u5185\u5bb9\"\r\n  }\r\n}\r\n```\r\n\r\n## \u5f00\u53d1\r\n\r\n### \u73af\u5883\u8bbe\u7f6e\r\n\r\n```bash\r\n# \u514b\u9686\u4ed3\u5e93\r\ngit clone https://github.com/yourusername/yu-terms-mcp-server.git\r\ncd yu-terms-mcp-server\r\n\r\n# \u521b\u5efa\u865a\u62df\u73af\u5883\r\npython -m venv venv\r\nsource venv/bin/activate  # Linux/Mac\r\n# \u6216\r\nvenv\\Scripts\\activate  # Windows\r\n\r\n# \u5b89\u88c5\u5f00\u53d1\u4f9d\u8d56\r\npip install -e \".[dev]\"\r\n```\r\n\r\n### \u8fd0\u884c\u6d4b\u8bd5\r\n\r\n```bash\r\npytest\r\n```\r\n\r\n### \u4ee3\u7801\u683c\u5f0f\u5316\r\n\r\n```bash\r\nblack yu_terms_mcp_server/\r\nisort yu_terms_mcp_server/\r\n```\r\n\r\n### \u7c7b\u578b\u68c0\u67e5\r\n\r\n```bash\r\nmypy yu_terms_mcp_server/\r\n```\r\n\r\n## \u9879\u76ee\u7ed3\u6784\r\n\r\n```\r\nyu_terms_mcp_server/\r\n\u251c\u2500\u2500 __init__.py          # \u5305\u521d\u59cb\u5316\r\n\u251c\u2500\u2500 main.py             # \u4e3b\u5165\u53e3\u70b9\r\n\u251c\u2500\u2500 server.py           # MCP\u670d\u52a1\u5668\u5b9e\u73b0\r\n\u2514\u2500\u2500 tools.py            # \u5de5\u5177\u5b9e\u73b0\r\n```\r\n\r\n## \u4e0eJava\u7248\u672c\u7684\u5bf9\u5e94\u5173\u7cfb\r\n\r\n| Java\u7ec4\u4ef6 | Python\u7ec4\u4ef6 | \u8bf4\u660e |\r\n|---------|-----------|------|\r\n| `TermsUpdatedTool.java` | `tools.py` | \u6761\u6b3e\u66f4\u65b0\u5de5\u5177\u5b9e\u73b0 |\r\n| `YuImageSearchMcpServerApplication.java` | `server.py` | \u4e3b\u5e94\u7528\u7a0b\u5e8f\u548c\u670d\u52a1\u5668\u914d\u7f6e |\r\n| `@Tool` \u6ce8\u89e3 | `get_tool_definition()` | \u5de5\u5177\u5b9a\u4e49\u548c\u6ce8\u518c |\r\n| `@Service` \u6ce8\u89e3 | \u7c7b\u5b9e\u4f8b\u5316 | \u670d\u52a1\u7ec4\u4ef6\u7ba1\u7406 |\r\n| `SpringApplication.run()` | `server.run()` | \u5e94\u7528\u7a0b\u5e8f\u542f\u52a8 |\r\n\r\n## \u914d\u7f6e\r\n\r\n\u670d\u52a1\u5668\u9ed8\u8ba4\u4f7f\u7528stdio\u8fdb\u884c\u901a\u4fe1\uff0c\u8fd9\u662fMCP\u534f\u8bae\u7684\u6807\u51c6\u65b9\u5f0f\u3002\u5982\u9700\u81ea\u5b9a\u4e49\u914d\u7f6e\uff0c\u53ef\u4ee5\u4fee\u6539`server.py`\u4e2d\u7684\u76f8\u5173\u8bbe\u7f6e\u3002\r\n\r\n## \u65e5\u5fd7\r\n\r\n\u5e94\u7528\u7a0b\u5e8f\u4f7f\u7528Python\u6807\u51c6logging\u6a21\u5757\u3002\u65e5\u5fd7\u7ea7\u522b\u9ed8\u8ba4\u4e3aINFO\uff0c\u8f93\u51fa\u5230stderr\u3002\r\n\r\n## \u8bb8\u53ef\u8bc1\r\n\r\nMIT License\r\n\r\n## \u8d21\u732e\r\n\r\n\u6b22\u8fce\u63d0\u4ea4Issue\u548cPull Request\uff01\r\n\r\n## \u66f4\u65b0\u65e5\u5fd7\r\n\r\n### v1.0.0\r\n- \u521d\u59cb\u7248\u672c\u53d1\u5e03\r\n- \u5b9e\u73b0\u57fa\u7840\u7684\u6761\u6b3e\u66f4\u65b0\u529f\u80fd\r\n- \u5b8c\u6574\u7684MCP\u534f\u8bae\u652f\u6301\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python MCP server for terms management functionality",
    "version": "1.0.5",
    "project_urls": {
        "Homepage": "https://github.com/yourusername/yu-terms-mcp-server",
        "Issues": "https://github.com/yourusername/yu-terms-mcp-server/issues",
        "Repository": "https://github.com/yourusername/yu-terms-mcp-server"
    },
    "split_keywords": [
        "mcp",
        " server",
        " terms",
        " management"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "63117e8988840d856c74a1f1416922e425f551f383d39eea78611ef59feb604f",
                "md5": "e1e2055edce7828dbf87b8e15af7783c",
                "sha256": "969137b2e383939cc1a4d60e1278b17bdbfa33f2ac0d01b4e8d6fd0fb027c3db"
            },
            "downloads": -1,
            "filename": "yu_terms_mcp_server-1.0.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e1e2055edce7828dbf87b8e15af7783c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 6051,
            "upload_time": "2025-08-13T03:05:53",
            "upload_time_iso_8601": "2025-08-13T03:05:53.024255Z",
            "url": "https://files.pythonhosted.org/packages/63/11/7e8988840d856c74a1f1416922e425f551f383d39eea78611ef59feb604f/yu_terms_mcp_server-1.0.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4579a0fbdac09797e9272689686e8d967342497cb3c216638a1981b0f9d3060d",
                "md5": "a0d7b2214b6b30b50f4af24cb4136b09",
                "sha256": "c9d70487d7759a272baa89fe449698e749950ab8bf279c9711abbcb3a661c649"
            },
            "downloads": -1,
            "filename": "yu_terms_mcp_server-1.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "a0d7b2214b6b30b50f4af24cb4136b09",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 5942,
            "upload_time": "2025-08-13T03:05:54",
            "upload_time_iso_8601": "2025-08-13T03:05:54.468462Z",
            "url": "https://files.pythonhosted.org/packages/45/79/a0fbdac09797e9272689686e8d967342497cb3c216638a1981b0f9d3060d/yu_terms_mcp_server-1.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-13 03:05:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "yu-terms-mcp-server",
    "github_not_found": true,
    "lcname": "yu-terms-mcp-server"
}
        
Elapsed time: 0.78949s