weknora-mcp 1.0.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,98 @@
1
+ # 更新日志
2
+
3
+ 所有重要的项目更改都将记录在此文件中。
4
+
5
+ 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
6
+ 并且本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
7
+
8
+ ## [1.0.0] - 2024-01-XX
9
+
10
+ ### 新增
11
+ - 初始版本发布
12
+ - WeKnora MCP Server 核心功能
13
+ - 完整的 WeKnora API 集成
14
+ - 空间管理工具
15
+ - 知识库管理工具
16
+ - 知识管理工具
17
+ - 模型管理工具
18
+ - 会话管理工具
19
+ - 聊天功能工具
20
+ - 块管理工具
21
+ - 多种启动方式支持
22
+ - 命令行参数支持
23
+ - 环境变量配置
24
+ - 完整的包安装支持
25
+ - 开发和生产模式
26
+ - 详细的文档和安装指南
27
+
28
+ ### 工具列表
29
+ - `create_tenant` - 创建新空间
30
+ - `list_tenants` - 列出所有空间
31
+ - `create_knowledge_base` - 创建知识库
32
+ - `list_knowledge_bases` - 列出知识库
33
+ - `get_knowledge_base` - 获取知识库详情
34
+ - `delete_knowledge_base` - 删除知识库
35
+ - `hybrid_search` - 混合搜索
36
+ - `create_knowledge_from_url` - 从 URL 创建知识
37
+ - `list_knowledge` - 列出知识
38
+ - `get_knowledge` - 获取知识详情
39
+ - `delete_knowledge` - 删除知识
40
+ - `create_model` - 创建模型
41
+ - `list_models` - 列出模型
42
+ - `get_model` - 获取模型详情
43
+ - `create_session` - 创建聊天会话
44
+ - `get_session` - 获取会话详情
45
+ - `list_sessions` - 列出会话
46
+ - `delete_session` - 删除会话
47
+ - `chat` - 发送聊天消息
48
+ - `list_chunks` - 列出知识块
49
+ - `delete_chunk` - 删除知识块
50
+
51
+ ### 文件结构
52
+ ```
53
+ WeKnoraMCP/
54
+ ├── __init__.py # 包初始化文件
55
+ ├── main.py # 主入口点 (推荐)
56
+ ├── run.py # 便捷启动脚本
57
+ ├── run_server.py # 原始启动脚本
58
+ ├── weknora_mcp_server.py # MCP 服务器实现
59
+ ├── test_module.py # 模组测试脚本
60
+ ├── requirements.txt # 依赖列表
61
+ ├── setup.py # 安装脚本 (传统)
62
+ ├── pyproject.toml # 现代项目配置
63
+ ├── MANIFEST.in # 包含文件清单
64
+ ├── LICENSE # MIT 许可证
65
+ ├── README.md # 项目说明
66
+ ├── INSTALL.md # 详细安装指南
67
+ └── CHANGELOG.md # 更新日志
68
+ ```
69
+
70
+ ### 启动方式
71
+ 1. `python main.py` - 主入口点 (推荐)
72
+ 2. `python run_server.py` - 原始启动脚本
73
+ 3. `python run.py` - 便捷启动脚本
74
+ 4. `python weknora_mcp_server.py` - 直接运行
75
+ 5. `python -m weknora_mcp_server` - 模块运行
76
+ 6. `weknora-mcp-server` - 安装后命令行工具
77
+ 7. `weknora-server` - 安装后命令行工具 (别名)
78
+
79
+ ### 技术特性
80
+ - 基于 Model Context Protocol (MCP) 1.0.0+
81
+ - 异步 I/O 支持
82
+ - 完整的错误处理
83
+ - 详细的日志记录
84
+ - 环境变量配置
85
+ - 命令行参数支持
86
+ - 多种安装方式
87
+ - 开发和生产模式
88
+ - 完整的测试覆盖
89
+
90
+ ### 依赖
91
+ - Python 3.10+
92
+ - mcp >= 1.0.0
93
+ - requests >= 2.31.0
94
+
95
+ ### 兼容性
96
+ - 支持 Windows、macOS、Linux
97
+ - 支持 Python 3.10-3.12
98
+ - 兼容现代 Python 包管理工具
@@ -0,0 +1,17 @@
1
+ FROM python:3.11-slim
2
+
3
+ WORKDIR /app
4
+ COPY requirements.txt .
5
+ RUN pip install --no-cache-dir -r requirements.txt
6
+
7
+ COPY . .
8
+ RUN pip install --no-cache-dir -e .
9
+
10
+ ENV MCP_HOST=0.0.0.0
11
+ ENV MCP_PORT=8000
12
+ ENV WEKNORA_BASE_URL=http://app:8080/api/v1
13
+ # Set MCP_SERVER_AUTH_TOKEN at runtime; HTTP transport refuses to start without it.
14
+
15
+ EXPOSE 8000
16
+
17
+ CMD ["weknora-mcp-server", "--transport", "http", "--host", "0.0.0.0", "--port", "8000"]
@@ -0,0 +1,411 @@
1
+ # WeKnora MCP Server 使用示例
2
+
3
+ 本文档提供了 WeKnora MCP Server 的详细使用示例。
4
+
5
+ ## 基本使用
6
+
7
+ ### 1. 启动服务器
8
+
9
+ ```bash
10
+ # 推荐方式 - 使用主入口点
11
+ python main.py
12
+
13
+ # 检查环境配置
14
+ python main.py --check-only
15
+
16
+ # 启用详细日志
17
+ python main.py --verbose
18
+ ```
19
+
20
+ ### 2. 环境配置示例
21
+
22
+ ```bash
23
+ # 设置环境变量
24
+ export WEKNORA_BASE_URL="http://localhost:8080/api/v1"
25
+ export WEKNORA_API_KEY="your_api_key_here"
26
+
27
+ # 或者在 .env 文件中设置
28
+ echo "WEKNORA_BASE_URL=http://localhost:8080/api/v1" > .env
29
+ echo "WEKNORA_API_KEY=your_api_key_here" >> .env
30
+ ```
31
+
32
+ ## MCP 工具使用示例
33
+
34
+ 以下是各种 MCP 工具的使用示例:
35
+
36
+ ### 空间管理
37
+
38
+ #### 创建空间
39
+ ```json
40
+ {
41
+ "tool": "create_tenant",
42
+ "arguments": {
43
+ "name": "我的公司",
44
+ "description": "公司知识管理系统",
45
+ "business": "technology",
46
+ "retriever_engines": {
47
+ "engines": [
48
+ {"retriever_type": "keywords", "retriever_engine_type": "postgres"},
49
+ {"retriever_type": "vector", "retriever_engine_type": "postgres"}
50
+ ]
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ #### 列出所有空间
57
+ ```json
58
+ {
59
+ "tool": "list_tenants",
60
+ "arguments": {}
61
+ }
62
+ ```
63
+
64
+ ### 知识库管理
65
+
66
+ #### 创建知识库
67
+ ```json
68
+ {
69
+ "tool": "create_knowledge_base",
70
+ "arguments": {
71
+ "name": "产品文档库",
72
+ "description": "产品相关文档和资料",
73
+ "embedding_model_id": "text-embedding-ada-002",
74
+ "summary_model_id": "gpt-3.5-turbo"
75
+ }
76
+ }
77
+ ```
78
+
79
+ #### 列出知识库
80
+ ```json
81
+ {
82
+ "tool": "list_knowledge_bases",
83
+ "arguments": {}
84
+ }
85
+ ```
86
+
87
+ #### 获取知识库详情
88
+ ```json
89
+ {
90
+ "tool": "get_knowledge_base",
91
+ "arguments": {
92
+ "kb_id": "kb_123456"
93
+ }
94
+ }
95
+ ```
96
+
97
+ #### 混合搜索
98
+ ```json
99
+ {
100
+ "tool": "hybrid_search",
101
+ "arguments": {
102
+ "kb_id": "kb_123456",
103
+ "query": "如何使用API",
104
+ "vector_threshold": 0.7,
105
+ "keyword_threshold": 0.5,
106
+ "match_count": 10
107
+ }
108
+ }
109
+ ```
110
+
111
+ ### 知识管理
112
+
113
+ #### 从URL创建知识
114
+ ```json
115
+ {
116
+ "tool": "create_knowledge_from_url",
117
+ "arguments": {
118
+ "kb_id": "kb_123456",
119
+ "url": "https://docs.example.com/api-guide",
120
+ "enable_multimodel": true
121
+ }
122
+ }
123
+ ```
124
+
125
+ #### 列出知识
126
+ ```json
127
+ {
128
+ "tool": "list_knowledge",
129
+ "arguments": {
130
+ "kb_id": "kb_123456",
131
+ "page": 1,
132
+ "page_size": 20
133
+ }
134
+ }
135
+ ```
136
+
137
+ #### 获取知识详情
138
+ ```json
139
+ {
140
+ "tool": "get_knowledge",
141
+ "arguments": {
142
+ "knowledge_id": "know_789012"
143
+ }
144
+ }
145
+ ```
146
+
147
+ ### 模型管理
148
+
149
+ #### 创建模型
150
+ ```json
151
+ {
152
+ "tool": "create_model",
153
+ "arguments": {
154
+ "name": "GPT-4 Chat Model",
155
+ "type": "KnowledgeQA",
156
+ "source": "openai",
157
+ "description": "OpenAI GPT-4 模型用于知识问答",
158
+ "base_url": "https://api.openai.com/v1",
159
+ "api_key": "sk-...",
160
+ "is_default": true
161
+ }
162
+ }
163
+ ```
164
+
165
+ #### 列出模型
166
+ ```json
167
+ {
168
+ "tool": "list_models",
169
+ "arguments": {}
170
+ }
171
+ ```
172
+
173
+ ### 会话管理
174
+
175
+ #### 创建聊天会话
176
+ ```json
177
+ {
178
+ "tool": "create_session",
179
+ "arguments": {
180
+ "kb_id": "kb_123456",
181
+ "max_rounds": 10,
182
+ "enable_rewrite": true,
183
+ "fallback_response": "抱歉,我无法回答这个问题。",
184
+ "summary_model_id": "gpt-3.5-turbo"
185
+ }
186
+ }
187
+ ```
188
+
189
+ #### 获取会话详情
190
+ ```json
191
+ {
192
+ "tool": "get_session",
193
+ "arguments": {
194
+ "session_id": "sess_345678"
195
+ }
196
+ }
197
+ ```
198
+
199
+ #### 列出会话
200
+ ```json
201
+ {
202
+ "tool": "list_sessions",
203
+ "arguments": {
204
+ "page": 1,
205
+ "page_size": 10
206
+ }
207
+ }
208
+ ```
209
+
210
+ ### 聊天功能
211
+
212
+ #### 发送聊天消息
213
+ ```json
214
+ {
215
+ "tool": "chat",
216
+ "arguments": {
217
+ "session_id": "sess_345678",
218
+ "query": "请介绍一下产品的主要功能"
219
+ }
220
+ }
221
+ ```
222
+
223
+ ### 块管理
224
+
225
+ #### 列出知识块
226
+ ```json
227
+ {
228
+ "tool": "list_chunks",
229
+ "arguments": {
230
+ "knowledge_id": "know_789012",
231
+ "page": 1,
232
+ "page_size": 50
233
+ }
234
+ }
235
+ ```
236
+
237
+ #### 删除知识块
238
+ ```json
239
+ {
240
+ "tool": "delete_chunk",
241
+ "arguments": {
242
+ "knowledge_id": "know_789012",
243
+ "chunk_id": "chunk_456789"
244
+ }
245
+ }
246
+ ```
247
+
248
+ ## 完整工作流程示例
249
+
250
+ ### 场景:创建一个完整的知识问答系统
251
+
252
+ ```bash
253
+ # 1. 启动服务器
254
+ python main.py --verbose
255
+
256
+ # 2. 在 MCP 客户端中执行以下步骤:
257
+ ```
258
+
259
+ #### 步骤 1: 创建空间
260
+ ```json
261
+ {
262
+ "tool": "create_tenant",
263
+ "arguments": {
264
+ "name": "技术文档中心",
265
+ "description": "公司技术文档知识管理",
266
+ "business": "technology"
267
+ }
268
+ }
269
+ ```
270
+
271
+ #### 步骤 2: 创建知识库
272
+ ```json
273
+ {
274
+ "tool": "create_knowledge_base",
275
+ "arguments": {
276
+ "name": "API文档库",
277
+ "description": "所有API相关文档"
278
+ }
279
+ }
280
+ ```
281
+
282
+ #### 步骤 3: 添加知识内容
283
+ ```json
284
+ {
285
+ "tool": "create_knowledge_from_url",
286
+ "arguments": {
287
+ "kb_id": "返回的知识库ID",
288
+ "url": "https://docs.company.com/api",
289
+ "enable_multimodel": true
290
+ }
291
+ }
292
+ ```
293
+
294
+ #### 步骤 4: 创建聊天会话
295
+ ```json
296
+ {
297
+ "tool": "create_session",
298
+ "arguments": {
299
+ "kb_id": "知识库ID",
300
+ "max_rounds": 5,
301
+ "enable_rewrite": true
302
+ }
303
+ }
304
+ ```
305
+
306
+ #### 步骤 5: 开始对话
307
+ ```json
308
+ {
309
+ "tool": "chat",
310
+ "arguments": {
311
+ "session_id": "会话ID",
312
+ "query": "如何使用用户认证API?"
313
+ }
314
+ }
315
+ ```
316
+
317
+ ## 错误处理示例
318
+
319
+ ### 常见错误和解决方案
320
+
321
+ #### 1. 连接错误
322
+ ```json
323
+ {
324
+ "error": "Connection refused",
325
+ "solution": "检查 WEKNORA_BASE_URL 是否正确,确认服务正在运行"
326
+ }
327
+ ```
328
+
329
+ #### 2. 认证错误
330
+ ```json
331
+ {
332
+ "error": "Unauthorized",
333
+ "solution": "检查 WEKNORA_API_KEY 是否设置正确"
334
+ }
335
+ ```
336
+
337
+ #### 3. 资源不存在
338
+ ```json
339
+ {
340
+ "error": "Knowledge base not found",
341
+ "solution": "确认知识库ID是否正确,或先创建知识库"
342
+ }
343
+ ```
344
+
345
+ ## 高级配置示例
346
+
347
+ ### 自定义检索配置
348
+ ```json
349
+ {
350
+ "tool": "hybrid_search",
351
+ "arguments": {
352
+ "kb_id": "kb_123456",
353
+ "query": "搜索查询",
354
+ "vector_threshold": 0.8,
355
+ "keyword_threshold": 0.6,
356
+ "match_count": 15
357
+ }
358
+ }
359
+ ```
360
+
361
+ ### 自定义会话策略
362
+ ```json
363
+ {
364
+ "tool": "create_session",
365
+ "arguments": {
366
+ "kb_id": "kb_123456",
367
+ "max_rounds": 20,
368
+ "enable_rewrite": true,
369
+ "fallback_response": "根据现有知识,我无法准确回答您的问题。请尝试重新表述或联系技术支持。"
370
+ }
371
+ }
372
+ ```
373
+
374
+ ## 性能优化建议
375
+
376
+ 1. **批量操作**: 尽量批量处理知识创建和更新
377
+ 2. **缓存策略**: 合理设置搜索阈值以平衡准确性和性能
378
+ 3. **会话管理**: 及时清理不需要的会话以节省资源
379
+ 4. **监控日志**: 使用 `--verbose` 选项监控性能指标
380
+
381
+ ## 集成示例
382
+
383
+ ### 与 Claude Desktop 集成
384
+ 在 Claude Desktop 的配置文件中添加:
385
+ ```json
386
+ {
387
+ "mcpServers": {
388
+ "weknora": {
389
+ "command": "python",
390
+ "args": ["path/to/main.py"],
391
+ "env": {
392
+ "WEKNORA_BASE_URL": "http://localhost:8080/api/v1",
393
+ "WEKNORA_API_KEY": "your_api_key"
394
+ }
395
+ }
396
+ }
397
+ }
398
+ ```
399
+
400
+ 项目仓库: https://github.com/NannaOlympicBroadcast/WeKnoraMCP
401
+
402
+ ### 与其他 MCP 客户端集成
403
+ 参考各客户端的文档,配置服务器启动命令和环境变量。
404
+
405
+ ## 故障排除
406
+
407
+ 如果遇到问题:
408
+ 1. 运行 `python main.py --check-only` 检查环境
409
+ 2. 使用 `python main.py --verbose` 查看详细日志
410
+ 3. 检查 WeKnora 服务是否正常运行
411
+ 4. 验证网络连接和防火墙设置