Name | yu-terms-mcp-server JSON |
Version |
1.0.5
JSON |
| download |
home_page | None |
Summary | A Python MCP server for terms management functionality |
upload_time | 2025-08-13 03:05:54 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | MIT |
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"
}