learn-mcp-server 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.
- learn_mcp_server-0.1.0/.env.example +5 -0
- learn_mcp_server-0.1.0/.gitignore +12 -0
- learn_mcp_server-0.1.0/.python-version +1 -0
- learn_mcp_server-0.1.0/LICENSE +21 -0
- learn_mcp_server-0.1.0/PKG-INFO +230 -0
- learn_mcp_server-0.1.0/README.md +210 -0
- learn_mcp_server-0.1.0/docs/project-design-and-roadmap.md +1109 -0
- learn_mcp_server-0.1.0/examples/client_test.py +36 -0
- learn_mcp_server-0.1.0/examples/stdio_config.json +12 -0
- learn_mcp_server-0.1.0/examples/streamable_http_config.json +7 -0
- learn_mcp_server-0.1.0/pyproject.toml +49 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/__init__.py +3 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/data/__init__.py +15 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/data/concepts.py +197 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/data/configs.py +142 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/data/curriculum.py +102 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/data/examples.py +135 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/data/practices.py +54 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/prompts/__init__.py +3 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/prompts/learning_prompts.py +84 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/registry.py +156 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/resources/__init__.py +15 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/resources/concept_resources.py +221 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/resources/config_resources.py +46 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/resources/curriculum_resources.py +32 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/resources/debug_resources.py +37 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/resources/example_resources.py +72 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/server.py +27 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/settings.py +25 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/tools/__init__.py +17 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/tools/basic_tools.py +71 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/tools/concept_tools.py +95 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/tools/config_tools.py +112 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/tools/debug_tools.py +122 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/tools/example_tools.py +54 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/tools/practice_tools.py +141 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/utils/__init__.py +10 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/utils/formatters.py +25 -0
- learn_mcp_server-0.1.0/src/learn_mcp_server/utils/validators.py +39 -0
- learn_mcp_server-0.1.0/tests/test_examples.py +35 -0
- learn_mcp_server-0.1.0/tests/test_mcp_integration.py +78 -0
- learn_mcp_server-0.1.0/tests/test_prompts.py +38 -0
- learn_mcp_server-0.1.0/tests/test_resources.py +278 -0
- learn_mcp_server-0.1.0/tests/test_settings.py +22 -0
- learn_mcp_server-0.1.0/tests/test_structure.py +86 -0
- learn_mcp_server-0.1.0/tests/test_tools.py +289 -0
- learn_mcp_server-0.1.0/tests/test_utils.py +44 -0
- learn_mcp_server-0.1.0/uv.lock +1764 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.10
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 TangRuoJie
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: learn-mcp-server
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A learning MCP server built with FastMCP.
|
|
5
|
+
Project-URL: Homepage, https://github.com/TangRj-Git/learn-mcp-server
|
|
6
|
+
Project-URL: Repository, https://github.com/TangRj-Git/learn-mcp-server
|
|
7
|
+
Project-URL: Issues, https://github.com/TangRj-Git/learn-mcp-server/issues
|
|
8
|
+
Author: TangRuoJie
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: fastmcp,learning,mcp,model-context-protocol
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Requires-Dist: fastmcp
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# learn-mcp-server
|
|
22
|
+
|
|
23
|
+
`learn-mcp-server` 是一个使用 **FastMCP** 编写的 MCP 学习型 Server。它既是一个可以运行的 MCP Server,也是一个用于学习 MCP 项目结构、Tool、Resource、Resource Template、Prompt、配置和调试流程的教学示例。
|
|
24
|
+
|
|
25
|
+
这个仓库的根目录 README 只保留项目介绍、安装运行、Host 配置和常用命令。更完整的需求设计、开发路线和模块拆分说明已经移动到 [docs/project-design-and-roadmap.md](docs/project-design-and-roadmap.md)。
|
|
26
|
+
|
|
27
|
+
## 功能
|
|
28
|
+
|
|
29
|
+
当前版本提供:
|
|
30
|
+
|
|
31
|
+
- MCP 核心概念讲解
|
|
32
|
+
- FastMCP Tool / Resource / Resource Template / Prompt 示例
|
|
33
|
+
- 学习路线、课程资源和练习任务
|
|
34
|
+
- stdio 与 streamable-http 配置说明
|
|
35
|
+
- 常见错误诊断和调试建议
|
|
36
|
+
- FastMCP Client 集成验证脚本
|
|
37
|
+
|
|
38
|
+
当前注册能力:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
Tools: 20 个
|
|
42
|
+
Resources: 39 个
|
|
43
|
+
Resource Templates: 5 个
|
|
44
|
+
Prompts: 5 个
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 环境要求
|
|
48
|
+
|
|
49
|
+
推荐使用 `uv` 管理项目环境和运行命令。
|
|
50
|
+
|
|
51
|
+
```powershell
|
|
52
|
+
uv --version
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
如果没有安装 `uv`,Windows PowerShell 可以使用:
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
irm https://astral.sh/uv/install.ps1 | iex
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
项目 Python 版本由 [.python-version](.python-version) 固定为:
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
3.10
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 安装依赖
|
|
68
|
+
|
|
69
|
+
在项目根目录执行:
|
|
70
|
+
|
|
71
|
+
```powershell
|
|
72
|
+
uv sync
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 运行测试
|
|
76
|
+
|
|
77
|
+
```powershell
|
|
78
|
+
uv run pytest -q
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 本地客户端验证
|
|
82
|
+
|
|
83
|
+
```powershell
|
|
84
|
+
uv run python examples\client_test.py
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
该脚本会列出当前 MCP Server 暴露的 Tools、Resources、Resource Templates 和 Prompts,并调用 `get_server_info` 做一次基本验证。
|
|
88
|
+
|
|
89
|
+
## Inspector 调试
|
|
90
|
+
|
|
91
|
+
Windows 下建议使用正斜杠绝对路径,并显式指定 `server.py` 里的 `mcp` 对象:
|
|
92
|
+
|
|
93
|
+
```powershell
|
|
94
|
+
uv run fastmcp dev inspector --no-reload E:/SoftwareProject/learn-mcp-server/src/learn_mcp_server/server.py:mcp
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
如果换成你自己的项目路径,也保持 `/`,不要写成 `E:\...`。反斜杠路径在 Inspector 的 URL 转换过程中可能被错误解析。
|
|
98
|
+
|
|
99
|
+
Inspector 连接成功后,可以在页面里点击 `List Resources`、`List Templates`、`Tools`、`Prompts` 查看当前 MCP Server 暴露的能力。
|
|
100
|
+
|
|
101
|
+
## stdio 配置
|
|
102
|
+
|
|
103
|
+
### 发布后给别人使用
|
|
104
|
+
|
|
105
|
+
发布到 PyPI 后,推荐让 Host 使用 `uvx` 启动。`uvx` 会创建隔离环境并自动安装依赖,使用者不需要手动配置 Python 解释器路径。
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"mcpServers": {
|
|
110
|
+
"learn-mcp-server": {
|
|
111
|
+
"command": "uvx",
|
|
112
|
+
"args": [
|
|
113
|
+
"--from",
|
|
114
|
+
"learn-mcp-server==0.1.0",
|
|
115
|
+
"learn-mcp-server"
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
示例文件见 [examples/stdio_config.json](examples/stdio_config.json)。
|
|
123
|
+
|
|
124
|
+
### 本地开发使用
|
|
125
|
+
|
|
126
|
+
如果还没有发布到 PyPI,或者想让 Host 直接使用当前工作区代码,可以使用 `uv run --directory`:
|
|
127
|
+
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"mcpServers": {
|
|
131
|
+
"learn-mcp-server": {
|
|
132
|
+
"command": "uv",
|
|
133
|
+
"args": [
|
|
134
|
+
"run",
|
|
135
|
+
"--directory",
|
|
136
|
+
"E:\\SoftwareProject\\learn-mcp-server",
|
|
137
|
+
"learn-mcp-server"
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
把 `--directory` 后面的路径替换成你本机项目根目录。
|
|
145
|
+
|
|
146
|
+
## streamable-http 运行
|
|
147
|
+
|
|
148
|
+
PowerShell:
|
|
149
|
+
|
|
150
|
+
```powershell
|
|
151
|
+
$env:LEARN_MCP_TRANSPORT="streamable-http"
|
|
152
|
+
uv run learn-mcp-server
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
默认地址:
|
|
156
|
+
|
|
157
|
+
```text
|
|
158
|
+
http://127.0.0.1:8000/mcp
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
对应 Host 配置示例见 [examples/streamable_http_config.json](examples/streamable_http_config.json)。
|
|
162
|
+
|
|
163
|
+
恢复 stdio:
|
|
164
|
+
|
|
165
|
+
```powershell
|
|
166
|
+
Remove-Item Env:\LEARN_MCP_TRANSPORT
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## 常用命令
|
|
170
|
+
|
|
171
|
+
```powershell
|
|
172
|
+
uv sync
|
|
173
|
+
uv run pytest -q
|
|
174
|
+
uv run python examples\client_test.py
|
|
175
|
+
uv run fastmcp dev inspector --no-reload E:/SoftwareProject/learn-mcp-server/src/learn_mcp_server/server.py:mcp
|
|
176
|
+
uv build
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## 项目结构
|
|
180
|
+
|
|
181
|
+
```text
|
|
182
|
+
learn-mcp-server/
|
|
183
|
+
├── README.md
|
|
184
|
+
├── pyproject.toml
|
|
185
|
+
├── uv.lock
|
|
186
|
+
├── .python-version
|
|
187
|
+
├── docs/
|
|
188
|
+
│ └── project-design-and-roadmap.md
|
|
189
|
+
├── examples/
|
|
190
|
+
│ ├── client_test.py
|
|
191
|
+
│ ├── stdio_config.json
|
|
192
|
+
│ └── streamable_http_config.json
|
|
193
|
+
├── src/
|
|
194
|
+
│ └── learn_mcp_server/
|
|
195
|
+
│ ├── server.py
|
|
196
|
+
│ ├── registry.py
|
|
197
|
+
│ ├── settings.py
|
|
198
|
+
│ ├── data/
|
|
199
|
+
│ ├── prompts/
|
|
200
|
+
│ ├── resources/
|
|
201
|
+
│ ├── tools/
|
|
202
|
+
│ └── utils/
|
|
203
|
+
└── tests/
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## 入口说明
|
|
207
|
+
|
|
208
|
+
- [src/learn_mcp_server/server.py](src/learn_mcp_server/server.py):创建 FastMCP 实例并启动服务
|
|
209
|
+
- [src/learn_mcp_server/registry.py](src/learn_mcp_server/registry.py):集中注册 Tools、Resources、Resource Templates 和 Prompts
|
|
210
|
+
- [src/learn_mcp_server/settings.py](src/learn_mcp_server/settings.py):运行配置和 transport 选择
|
|
211
|
+
- [examples/client_test.py](examples/client_test.py):本地 FastMCP Client 验证脚本
|
|
212
|
+
- [docs/project-design-and-roadmap.md](docs/project-design-and-roadmap.md):完整项目需求、设计和开发路线
|
|
213
|
+
|
|
214
|
+
## 打包
|
|
215
|
+
|
|
216
|
+
```powershell
|
|
217
|
+
uv build
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
构建产物会生成到 `dist/`,该目录不会提交到 Git。
|
|
221
|
+
|
|
222
|
+
## 发布后运行
|
|
223
|
+
|
|
224
|
+
发布到 PyPI 后,可以直接用:
|
|
225
|
+
|
|
226
|
+
```powershell
|
|
227
|
+
uvx --from learn-mcp-server==0.1.0 learn-mcp-server
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
这也是推荐写入 MCP Host 配置的运行方式。
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
# learn-mcp-server
|
|
2
|
+
|
|
3
|
+
`learn-mcp-server` 是一个使用 **FastMCP** 编写的 MCP 学习型 Server。它既是一个可以运行的 MCP Server,也是一个用于学习 MCP 项目结构、Tool、Resource、Resource Template、Prompt、配置和调试流程的教学示例。
|
|
4
|
+
|
|
5
|
+
这个仓库的根目录 README 只保留项目介绍、安装运行、Host 配置和常用命令。更完整的需求设计、开发路线和模块拆分说明已经移动到 [docs/project-design-and-roadmap.md](docs/project-design-and-roadmap.md)。
|
|
6
|
+
|
|
7
|
+
## 功能
|
|
8
|
+
|
|
9
|
+
当前版本提供:
|
|
10
|
+
|
|
11
|
+
- MCP 核心概念讲解
|
|
12
|
+
- FastMCP Tool / Resource / Resource Template / Prompt 示例
|
|
13
|
+
- 学习路线、课程资源和练习任务
|
|
14
|
+
- stdio 与 streamable-http 配置说明
|
|
15
|
+
- 常见错误诊断和调试建议
|
|
16
|
+
- FastMCP Client 集成验证脚本
|
|
17
|
+
|
|
18
|
+
当前注册能力:
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
Tools: 20 个
|
|
22
|
+
Resources: 39 个
|
|
23
|
+
Resource Templates: 5 个
|
|
24
|
+
Prompts: 5 个
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 环境要求
|
|
28
|
+
|
|
29
|
+
推荐使用 `uv` 管理项目环境和运行命令。
|
|
30
|
+
|
|
31
|
+
```powershell
|
|
32
|
+
uv --version
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
如果没有安装 `uv`,Windows PowerShell 可以使用:
|
|
36
|
+
|
|
37
|
+
```powershell
|
|
38
|
+
irm https://astral.sh/uv/install.ps1 | iex
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
项目 Python 版本由 [.python-version](.python-version) 固定为:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
3.10
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 安装依赖
|
|
48
|
+
|
|
49
|
+
在项目根目录执行:
|
|
50
|
+
|
|
51
|
+
```powershell
|
|
52
|
+
uv sync
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 运行测试
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
uv run pytest -q
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 本地客户端验证
|
|
62
|
+
|
|
63
|
+
```powershell
|
|
64
|
+
uv run python examples\client_test.py
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
该脚本会列出当前 MCP Server 暴露的 Tools、Resources、Resource Templates 和 Prompts,并调用 `get_server_info` 做一次基本验证。
|
|
68
|
+
|
|
69
|
+
## Inspector 调试
|
|
70
|
+
|
|
71
|
+
Windows 下建议使用正斜杠绝对路径,并显式指定 `server.py` 里的 `mcp` 对象:
|
|
72
|
+
|
|
73
|
+
```powershell
|
|
74
|
+
uv run fastmcp dev inspector --no-reload E:/SoftwareProject/learn-mcp-server/src/learn_mcp_server/server.py:mcp
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
如果换成你自己的项目路径,也保持 `/`,不要写成 `E:\...`。反斜杠路径在 Inspector 的 URL 转换过程中可能被错误解析。
|
|
78
|
+
|
|
79
|
+
Inspector 连接成功后,可以在页面里点击 `List Resources`、`List Templates`、`Tools`、`Prompts` 查看当前 MCP Server 暴露的能力。
|
|
80
|
+
|
|
81
|
+
## stdio 配置
|
|
82
|
+
|
|
83
|
+
### 发布后给别人使用
|
|
84
|
+
|
|
85
|
+
发布到 PyPI 后,推荐让 Host 使用 `uvx` 启动。`uvx` 会创建隔离环境并自动安装依赖,使用者不需要手动配置 Python 解释器路径。
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"mcpServers": {
|
|
90
|
+
"learn-mcp-server": {
|
|
91
|
+
"command": "uvx",
|
|
92
|
+
"args": [
|
|
93
|
+
"--from",
|
|
94
|
+
"learn-mcp-server==0.1.0",
|
|
95
|
+
"learn-mcp-server"
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
示例文件见 [examples/stdio_config.json](examples/stdio_config.json)。
|
|
103
|
+
|
|
104
|
+
### 本地开发使用
|
|
105
|
+
|
|
106
|
+
如果还没有发布到 PyPI,或者想让 Host 直接使用当前工作区代码,可以使用 `uv run --directory`:
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"mcpServers": {
|
|
111
|
+
"learn-mcp-server": {
|
|
112
|
+
"command": "uv",
|
|
113
|
+
"args": [
|
|
114
|
+
"run",
|
|
115
|
+
"--directory",
|
|
116
|
+
"E:\\SoftwareProject\\learn-mcp-server",
|
|
117
|
+
"learn-mcp-server"
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
把 `--directory` 后面的路径替换成你本机项目根目录。
|
|
125
|
+
|
|
126
|
+
## streamable-http 运行
|
|
127
|
+
|
|
128
|
+
PowerShell:
|
|
129
|
+
|
|
130
|
+
```powershell
|
|
131
|
+
$env:LEARN_MCP_TRANSPORT="streamable-http"
|
|
132
|
+
uv run learn-mcp-server
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
默认地址:
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
http://127.0.0.1:8000/mcp
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
对应 Host 配置示例见 [examples/streamable_http_config.json](examples/streamable_http_config.json)。
|
|
142
|
+
|
|
143
|
+
恢复 stdio:
|
|
144
|
+
|
|
145
|
+
```powershell
|
|
146
|
+
Remove-Item Env:\LEARN_MCP_TRANSPORT
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## 常用命令
|
|
150
|
+
|
|
151
|
+
```powershell
|
|
152
|
+
uv sync
|
|
153
|
+
uv run pytest -q
|
|
154
|
+
uv run python examples\client_test.py
|
|
155
|
+
uv run fastmcp dev inspector --no-reload E:/SoftwareProject/learn-mcp-server/src/learn_mcp_server/server.py:mcp
|
|
156
|
+
uv build
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 项目结构
|
|
160
|
+
|
|
161
|
+
```text
|
|
162
|
+
learn-mcp-server/
|
|
163
|
+
├── README.md
|
|
164
|
+
├── pyproject.toml
|
|
165
|
+
├── uv.lock
|
|
166
|
+
├── .python-version
|
|
167
|
+
├── docs/
|
|
168
|
+
│ └── project-design-and-roadmap.md
|
|
169
|
+
├── examples/
|
|
170
|
+
│ ├── client_test.py
|
|
171
|
+
│ ├── stdio_config.json
|
|
172
|
+
│ └── streamable_http_config.json
|
|
173
|
+
├── src/
|
|
174
|
+
│ └── learn_mcp_server/
|
|
175
|
+
│ ├── server.py
|
|
176
|
+
│ ├── registry.py
|
|
177
|
+
│ ├── settings.py
|
|
178
|
+
│ ├── data/
|
|
179
|
+
│ ├── prompts/
|
|
180
|
+
│ ├── resources/
|
|
181
|
+
│ ├── tools/
|
|
182
|
+
│ └── utils/
|
|
183
|
+
└── tests/
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## 入口说明
|
|
187
|
+
|
|
188
|
+
- [src/learn_mcp_server/server.py](src/learn_mcp_server/server.py):创建 FastMCP 实例并启动服务
|
|
189
|
+
- [src/learn_mcp_server/registry.py](src/learn_mcp_server/registry.py):集中注册 Tools、Resources、Resource Templates 和 Prompts
|
|
190
|
+
- [src/learn_mcp_server/settings.py](src/learn_mcp_server/settings.py):运行配置和 transport 选择
|
|
191
|
+
- [examples/client_test.py](examples/client_test.py):本地 FastMCP Client 验证脚本
|
|
192
|
+
- [docs/project-design-and-roadmap.md](docs/project-design-and-roadmap.md):完整项目需求、设计和开发路线
|
|
193
|
+
|
|
194
|
+
## 打包
|
|
195
|
+
|
|
196
|
+
```powershell
|
|
197
|
+
uv build
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
构建产物会生成到 `dist/`,该目录不会提交到 Git。
|
|
201
|
+
|
|
202
|
+
## 发布后运行
|
|
203
|
+
|
|
204
|
+
发布到 PyPI 后,可以直接用:
|
|
205
|
+
|
|
206
|
+
```powershell
|
|
207
|
+
uvx --from learn-mcp-server==0.1.0 learn-mcp-server
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
这也是推荐写入 MCP Host 配置的运行方式。
|