uno-cli 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,10 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
@@ -0,0 +1 @@
1
+ 3.12
uno_cli-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,62 @@
1
+ Metadata-Version: 2.4
2
+ Name: uno-cli
3
+ Version: 0.1.0
4
+ Summary: CLI tool to call 80+ MCP servers via Uno gateway using bash commands
5
+ Project-URL: Homepage, https://mcpmarket.cn
6
+ Project-URL: Repository, https://github.com/mcpmarket/uno-cli
7
+ License: MIT
8
+ Keywords: ai,cli,mcp,oauth,tools
9
+ Classifier: Environment :: Console
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Requires-Python: >=3.12
15
+ Requires-Dist: click>=8.3.1
16
+ Requires-Dist: httpx>=0.28.1
17
+ Requires-Dist: mcp>=1.26.0
18
+ Description-Content-Type: text/markdown
19
+
20
+ # uno-cli
21
+
22
+ 通过 bash 命令调用 Uno MCP 网关聚合的 80+ MCP Server,无需 LLM 原生 tool_use。
23
+
24
+ ## 安装
25
+
26
+ ```bash
27
+ pip install uno-cli
28
+ ```
29
+
30
+ ## 认证
31
+
32
+ 服务器环境(无浏览器)使用 Device Code Flow:
33
+
34
+ ```bash
35
+ mcpx login --headless
36
+ ```
37
+
38
+ 终端会输出设备码和验证链接,在任意浏览器中打开链接、输入设备码完成授权。Token 存储在 `~/.uno/tokens.json`。
39
+
40
+ ## 使用
41
+
42
+ ```bash
43
+ # 检查状态
44
+ mcpx status
45
+
46
+ # 发现 server 工具
47
+ mcpx tools call uno_discover_servers '{"server_names": ["time"]}'
48
+
49
+ # 调用工具
50
+ mcpx tools call uno_call_tool '{"tool_name": "time.get_current_time", "arguments": {"timezone": "Asia/Shanghai"}}'
51
+
52
+ # 沙盒执行脚本
53
+ mcpx tools call uno_execute_script '{"language": "python", "script": "print(2**10)"}'
54
+ ```
55
+
56
+ ## 支持的 MCP Server
57
+
58
+ Uno 网关聚合了 80+ MCP Server,涵盖搜索、GitHub、文档、图表、金融、地图、出行等场景。详见 [SKILL.md](https://mcpmarket.cn/skill.md)。
59
+
60
+ ## MCP 网关
61
+
62
+ `https://uno.mcpmarket.cn/mcp`
@@ -0,0 +1,43 @@
1
+ # uno-cli
2
+
3
+ 通过 bash 命令调用 Uno MCP 网关聚合的 80+ MCP Server,无需 LLM 原生 tool_use。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ pip install uno-cli
9
+ ```
10
+
11
+ ## 认证
12
+
13
+ 服务器环境(无浏览器)使用 Device Code Flow:
14
+
15
+ ```bash
16
+ mcpx login --headless
17
+ ```
18
+
19
+ 终端会输出设备码和验证链接,在任意浏览器中打开链接、输入设备码完成授权。Token 存储在 `~/.uno/tokens.json`。
20
+
21
+ ## 使用
22
+
23
+ ```bash
24
+ # 检查状态
25
+ mcpx status
26
+
27
+ # 发现 server 工具
28
+ mcpx tools call uno_discover_servers '{"server_names": ["time"]}'
29
+
30
+ # 调用工具
31
+ mcpx tools call uno_call_tool '{"tool_name": "time.get_current_time", "arguments": {"timezone": "Asia/Shanghai"}}'
32
+
33
+ # 沙盒执行脚本
34
+ mcpx tools call uno_execute_script '{"language": "python", "script": "print(2**10)"}'
35
+ ```
36
+
37
+ ## 支持的 MCP Server
38
+
39
+ Uno 网关聚合了 80+ MCP Server,涵盖搜索、GitHub、文档、图表、金融、地图、出行等场景。详见 [SKILL.md](https://mcpmarket.cn/skill.md)。
40
+
41
+ ## MCP 网关
42
+
43
+ `https://uno.mcpmarket.cn/mcp`
uno_cli-0.1.0/SKILL.md ADDED
@@ -0,0 +1,286 @@
1
+ ---
2
+ name: uno-mcp-tools
3
+ description: 通过 bash 命令调用 80+ MCP Server 的全部工具(搜索、GitHub、文档、图表、代码执行、地图、金融等),无需 LLM 原生 tool_use。使用场景:当需要调用外部工具、搜索网络、操作文件、生成图表、执行代码、查询数据时使用此 Skill。
4
+ homepage: https://mcpmarket.cn
5
+ metadata: {"emoji":"🔧","category":"tools","gateway":"https://uno.mcpmarket.cn/mcp"}
6
+ ---
7
+
8
+ # Uno MCP Tools
9
+
10
+ 通过 `mcpx` 命令行工具,调用 Uno 网关聚合的 80+ MCP Server。一条 bash 命令 = 一次工具调用。
11
+
12
+ ## 安装
13
+
14
+ ```bash
15
+ pip install git+https://github.com/anthropics/mcp-bash-cli.git
16
+ ```
17
+
18
+ 安装后可用命令:`mcpx`
19
+
20
+ 验证:`mcpx --help`
21
+
22
+ 如果 `pip` 不可用,尝试 `pip3` 或先安装 Python 3.12+。
23
+
24
+ ## 认证
25
+
26
+ 首次使用需登录。服务器环境(无浏览器)使用 Device Code Flow:
27
+
28
+ ```bash
29
+ mcpx login --headless
30
+ ```
31
+
32
+ 终端会输出设备码和链接,在任意浏览器中打开链接、输入设备码、选择 GitHub/Google/微信登录即可。终端自动完成。
33
+
34
+ Token 存储在 `~/.uno/tokens.json`,登录一次长期有效(30 天)。
35
+
36
+ 检查状态:`mcpx status`
37
+
38
+ ## 核心命令
39
+
40
+ ```bash
41
+ # 列出网关工具(3 个入口工具)
42
+ mcpx --json tools list
43
+
44
+ # 发现目标 server 的工具
45
+ mcpx tools call uno_discover_servers '{"server_names": ["time"]}'
46
+
47
+ # 调用具体工具(格式:server.tool_name)
48
+ mcpx tools call uno_call_tool '{"tool_name": "time.get_current_time", "arguments": {"timezone": "Asia/Shanghai"}}'
49
+
50
+ # 沙盒执行脚本
51
+ mcpx tools call uno_execute_script '{"language": "python", "script": "print(2**10)"}'
52
+ ```
53
+
54
+ 所有输出为 JSON,可配合 `jq` 提取:
55
+
56
+ ```bash
57
+ mcpx --json tools call uno_call_tool '{"tool_name": "time.get_current_time", "arguments": {"timezone": "UTC"}}' | jq '.content[0].text | fromjson'
58
+ ```
59
+
60
+ ## 两步调用模式
61
+
62
+ Uno 是网关,调用任何工具都是两步:
63
+
64
+ **第一步 — discover**:获取目标 server 的工具列表和参数 schema
65
+
66
+ ```bash
67
+ mcpx tools call uno_discover_servers '{"server_names": ["github"]}'
68
+ ```
69
+
70
+ **第二步 — call_tool**:用 `server.tool_name` 格式调用
71
+
72
+ ```bash
73
+ mcpx tools call uno_call_tool '{"tool_name": "github.search_repositories", "arguments": {"query": "mcp server language:python"}}'
74
+ ```
75
+
76
+ ## 可用 Server 目录
77
+
78
+ 以下是 Uno 网关当前聚合的全部 MCP Server。`server_names` 参数必须从此列表选择。
79
+
80
+ ### 搜索与信息检索
81
+
82
+ | server | 说明 |
83
+ |--------|------|
84
+ | duckduckgo | 网页搜索 + URL 内容提取 |
85
+ | brave-search | Brave 搜索,支持 Web 和本地搜索 |
86
+ | exa-search | 神经搜索,适合代码和技术文档 |
87
+ | bing-search | 必应搜索,中文优化,无需 API Key |
88
+ | bocha-search-mcp | 博查搜索,覆盖数十亿网页 |
89
+ | metaso-search | 秘塔搜索,RAG 智能问答 + 网页提取 |
90
+ | perplexity-ask | Perplexity AI 搜索 |
91
+ | brightdata-search | 穿透反爬的实时网页数据采集 |
92
+ | Bright Data Search | 绕过反爬获取最新网页数据 |
93
+ | google-news | Google News 分类新闻搜索 |
94
+ | trends | 趋势聚合,20+ 热搜源 |
95
+
96
+ ### 开发工具
97
+
98
+ | server | 说明 |
99
+ |--------|------|
100
+ | github | GitHub 仓库、Issue、PR 操作 |
101
+ | context7 | 实时代码库文档查询,防止 AI 幻觉 |
102
+ | ref-tools-mcp | 最新技术文档访问 |
103
+ | zread | GitHub 开源项目文档和代码分析 |
104
+ | figma-context | Figma 设计稿转代码 |
105
+ | sentry-mcp | Sentry 错误调试 |
106
+ | mcp-server-neon | Neon Postgres 数据库自然语言交互 |
107
+ | supabase-mcp | Supabase 项目 AI 管理 |
108
+ | n8n | n8n 工作流自动化 |
109
+ | hf-mcp-server | Hugging Face 模型服务 |
110
+ | MCP服务器开发工具包 | FastMCP 开发指南和模板 |
111
+
112
+ ### 文档与内容
113
+
114
+ | server | 说明 |
115
+ |--------|------|
116
+ | markitdown | 任意 URI 转 Markdown |
117
+ | fetch | 网页转 Markdown,支持分页 |
118
+ | firecrawl | 网站爬取转结构化数据 |
119
+ | word | 创建和编辑 Word 文档 |
120
+ | excel | 创建/读取 Excel,含公式和图表 |
121
+ | powerpoint | PowerPoint 操作,32 个工具 |
122
+ | arxiv | arXiv 论文搜索和下载 |
123
+ | Arxiv-Paper-MCP | arXiv 论文搜索、解读、最新 AI 论文 |
124
+ | notion | Notion 页面和数据库管理 |
125
+ | pageindex-mcp | 基于推理的层级 RAG 系统 |
126
+
127
+ ### 数据可视化
128
+
129
+ | server | 说明 |
130
+ |--------|------|
131
+ | chart | AntV 25+ 专业图表生成 |
132
+ | 图表生成工具 | ECharts 动态图表(折线/柱状/饼图/雷达/散点) |
133
+ | gezhe-ppt-mcp | 从主题生成 PPT |
134
+
135
+ ### 金融与数据
136
+
137
+ | server | 说明 |
138
+ |--------|------|
139
+ | akshare-stock-china | A 股实时行情、K 线、财报 |
140
+ | eastmoney-stock-china | 东方财富 A 股数据和技术指标 |
141
+ | yahoo-finance | 雅虎财经全球股票行情 |
142
+ | Alpha Vantage | 全球金融数据(股票/加密/外汇/商品) |
143
+ | Qieman | 基金数据和投资分析 |
144
+ | dexpaprika | 加密货币和 DEX 实时数据 |
145
+ | 基金知识查询服务器 | 基金知识检索和股票搜索 |
146
+ | 货币与石油价格服务器 | 实时汇率和布伦特原油价格 |
147
+ | world-bank | 世界银行全球经济社会数据 |
148
+
149
+ ### 时间与地图
150
+
151
+ | server | 说明 |
152
+ |--------|------|
153
+ | time | 全球时区查询和时间转换 |
154
+ | baidu-map | 百度地图 LBS 地理空间 API |
155
+ | google-map | Google 地图服务 |
156
+
157
+ ### 出行与生活
158
+
159
+ | server | 说明 |
160
+ |--------|------|
161
+ | 12306 | 中国铁路车票查询 |
162
+ | variflight | 航班信息、天气、舒适度指标 |
163
+ | didi | 滴滴打车查价、预估时间、叫车 |
164
+ | Hotel MCP | 国内酒店查询(覆盖 80% 五星级) |
165
+ | aigohotel | 全球酒店搜索和推荐 |
166
+ | HowToCook-mcp | 菜谱和膳食规划 |
167
+ | McDonald's | 麦当劳活动日历和优惠券 |
168
+ | 美味不用等 | 排队取号服务 |
169
+ | today-oil-price-china | 全国 31 省油价实时查询 |
170
+ | express-tracking-china | 全球快递追踪(1000+ 物流商) |
171
+
172
+ ### AI 与媒体
173
+
174
+ | server | 说明 |
175
+ |--------|------|
176
+ | minimax | MiniMax AI 决策优化 |
177
+ | elevenlabs | ElevenLabs 语音合成 |
178
+ | nano-banana | Gemini 图片生成 + ImgBB 托管 |
179
+ | modelscope-image | ModelScope AI 图像生成和变换 |
180
+ | zhipu-vision | 智谱视觉理解(图像分析/OCR/视频) |
181
+ | sequentialthinking | 结构化逐步推理 |
182
+ | edgeone-pages-mcp | HTML 部署到 EdgeOne Pages |
183
+
184
+ ### 社交与社区
185
+
186
+ | server | 说明 |
187
+ |--------|------|
188
+ | reddit | Reddit 帖子、评论、趋势浏览 |
189
+ | mcp-hn | Hacker News 故事和用户 |
190
+ | slack | Slack 消息和频道管理 |
191
+ | clawdchat-mcp | ClawdChat AI 社交网络 |
192
+ | 🦐虾聊AI社交网络 | 虾聊 AI 社交(AI-to-AI) |
193
+ | douyin | 抖音无水印视频下载和音频提取 |
194
+
195
+ ### 企业与数据服务
196
+
197
+ | server | 说明 |
198
+ |--------|------|
199
+ | enterprise-big-data-china | 中国企业工商、法务、财报、知产 |
200
+ | china-carrier-tri-factor-auth | 运营商三要素实名认证 |
201
+ | car-vin-lookup-china | VIN 车辆识别码查询 |
202
+ | 域名查询服务 | RDAP/WHOIS/DNS 域名信息 |
203
+ | 智能搜索工具集 | 14 个增强搜索覆盖主流技术平台 |
204
+ | apify-mcp-server | Apify 网页抓取任务管理 |
205
+ | mcp | Hyperbrowser 数据爬取 |
206
+ | BrightData | 浏览器自动化和页面操作 |
207
+ | GoogleDrive | Google Drive 文件管理 |
208
+ | Icons8 MCP server | SVG/PNG 图标获取 |
209
+ | Logo提取处理工具 | 网站 Logo 提取和分析 |
210
+ | Webhook MCP | 自定义 Webhook 请求 |
211
+ | 测试沙盒Sandbox MCP | 企业可恢复沙盒环境 |
212
+
213
+ ### 其他特色服务
214
+
215
+ | server | 说明 |
216
+ |--------|------|
217
+ | bazi | 八字命理分析 |
218
+ | 星座 MCP 服务 | 星座查询、运势、配对 |
219
+ | MBTI测试服务 | MBTI 性格测试 |
220
+ | AI人格服务器 | 多 AI 角色协作 |
221
+ | biomcp | 生物医学 AI 工具包 |
222
+ | baichuan-mcp-servers | 百川智能医疗信息 |
223
+ | Theta Health MCP | HIPAA 健康数据(300+ 设备) |
224
+ | 苹果开发者文档搜索服务 | Apple 开发文档搜索 |
225
+ | taoke-mcp | 淘客推广链接转换(淘宝/京东/拼多多) |
226
+ | agentsyun-coupons-china | 外卖/娱乐/出行优惠券 |
227
+ | GoWeb3 Data | Web3 事件和新闻 |
228
+ | OSRS玩家数据服务 | 老学校 RuneScape 玩家数据 |
229
+ | 柏林公共服务查询服务 | 柏林 1000+ 行政服务查询 |
230
+ | 英国国家统计局MCP服务器 | 英国官方统计数据 |
231
+
232
+ ## 常见用法示例
233
+
234
+ ### 搜索网页
235
+
236
+ ```bash
237
+ mcpx tools call uno_discover_servers '{"server_names": ["duckduckgo"]}'
238
+ mcpx tools call uno_call_tool '{"tool_name": "duckduckgo.search", "arguments": {"query": "MCP protocol 2025"}}'
239
+ ```
240
+
241
+ ### 操作 GitHub
242
+
243
+ ```bash
244
+ mcpx tools call uno_discover_servers '{"server_names": ["github"]}'
245
+ mcpx tools call uno_call_tool '{"tool_name": "github.search_repositories", "arguments": {"query": "mcp server stars:>100"}}'
246
+ ```
247
+
248
+ ### 生成图表
249
+
250
+ ```bash
251
+ mcpx tools call uno_discover_servers '{"server_names": ["chart"]}'
252
+ mcpx tools call uno_call_tool '{"tool_name": "chart.bindbindbindbindbindbindbar_bindchart", "arguments": {...}}'
253
+ ```
254
+
255
+ 注意:先用 discover 获取工具的 inputSchema,再按 schema 传参。
256
+
257
+ ### 执行 Python 脚本
258
+
259
+ ```bash
260
+ mcpx tools call uno_execute_script '{"language": "python", "script": "import json; print(json.dumps({\"result\": 42}))"}'
261
+ ```
262
+
263
+ ### 查询 A 股
264
+
265
+ ```bash
266
+ mcpx tools call uno_discover_servers '{"server_names": ["akshare-stock-china"]}'
267
+ # 查看返回的工具列表,选择合适的工具调用
268
+ ```
269
+
270
+ ## 工作流建议
271
+
272
+ 1. **不确定用哪个 server?** 对照上方目录,按功能类别找到目标 server
273
+ 2. **不确定工具参数?** 先 `discover` 获取 inputSchema,再按 schema 填参数
274
+ 3. **调用失败?** 检查 `mcpx status` 确认 token 有效;检查 server_names 拼写
275
+ 4. **需要 OAuth 的 server?** discover 会返回 `auth_url`,用户需先授权
276
+
277
+ ## 凭证管理
278
+
279
+ | 项目 | 路径 |
280
+ |------|------|
281
+ | Token 文件 | `~/.uno/tokens.json` |
282
+ | MCP 网关 | `https://uno.mcpmarket.cn/mcp` |
283
+ | 登录命令 | `mcpx login --headless` |
284
+ | 登出命令 | `mcpx logout` |
285
+
286
+ Token 有效期 30 天,过期后重新执行 `mcpx login --headless`。
@@ -0,0 +1,70 @@
1
+ # MCP Bash CLI Demo
2
+
3
+ ## 项目概述
4
+
5
+ Python CLI 工具,通过 bash 命令调用远程 MCP Server,替代 LLM 原生 tool_use。
6
+ 使用 OAuth 2.1 + PKCE 认证连接 `https://uno.mcpmarket.cn/mcp`(Uno MCP 网关)。
7
+
8
+ ## 技术栈
9
+
10
+ - Python 3.12 + uv 包管理
11
+ - click (CLI)、httpx (HTTP)、mcp SDK (MCP 协议)
12
+ - hatchling (构建)
13
+
14
+ ## 快速命令
15
+
16
+ ```bash
17
+ # 安装依赖
18
+ uv sync --dev
19
+
20
+ # 登录(首次,会打开浏览器)
21
+ uv run mcpx login
22
+
23
+ # 登录(服务器环境,无浏览器,Device Code Flow)
24
+ uv run mcpx login --headless
25
+
26
+ # 查看状态
27
+ uv run mcpx status
28
+
29
+ # 列出工具
30
+ uv run mcpx --json tools list
31
+
32
+ # 两步调用(Uno 网关模式)
33
+ uv run mcpx tools call uno_discover_servers '{"server_names": ["time"]}'
34
+ uv run mcpx tools call uno_call_tool '{"tool_name": "time.get_current_time", "arguments": {"timezone": "Asia/Shanghai"}}'
35
+
36
+ # 运行测试
37
+ uv run pytest tests/ -v
38
+ ```
39
+
40
+ ## Headless 登录(服务器环境)
41
+
42
+ 使用 `--headless` 标志通过 Device Code Flow (RFC 8628) 登录,无需本地浏览器:
43
+
44
+ ```bash
45
+ uv run mcpx login --headless
46
+ # 终端输出:
47
+ # 请在浏览器中打开以下链接并输入设备码:
48
+ # 链接: https://mcpmarket.cn/oauth/device
49
+ # 设备码: WDJB-MPFK
50
+ # 等待授权中... (有效期 10 分钟)
51
+ ```
52
+
53
+ 在任意有浏览器的设备上打开链接,输入设备码,选择 GitHub/Google/微信登录即可。
54
+ 终端会自动检测到授权完成并保存 Token。
55
+
56
+ ## 项目结构
57
+
58
+ ```
59
+ mcp_cli/
60
+ ├── cli.py # CLI 入口(click),命令: login/logout/status/tools/resources/prompts
61
+ ├── oauth.py # OAuth 2.1 + PKCE + Device Code Flow(发现→注册→授权→token交换)
62
+ ├── client.py # MCP 客户端(StreamableHTTP + Bearer Token)
63
+ └── config.py # Token 持久化(~/.uno/tokens.json)
64
+ ```
65
+
66
+ ## 注意事项
67
+
68
+ - mcpmarket.cn CDN 会屏蔽默认 httpx User-Agent,需设置自定义 UA
69
+ - Uno 网关使用两步调用:先 `uno_discover_servers` 再 `uno_call_tool`
70
+ - Token 存储在 `~/.uno/tokens.json`
uno_cli-0.1.0/main.py ADDED
@@ -0,0 +1,6 @@
1
+ def main():
2
+ print("Hello from mcp-bash-cli!")
3
+
4
+
5
+ if __name__ == "__main__":
6
+ main()
File without changes