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.
Files changed (48) hide show
  1. learn_mcp_server-0.1.0/.env.example +5 -0
  2. learn_mcp_server-0.1.0/.gitignore +12 -0
  3. learn_mcp_server-0.1.0/.python-version +1 -0
  4. learn_mcp_server-0.1.0/LICENSE +21 -0
  5. learn_mcp_server-0.1.0/PKG-INFO +230 -0
  6. learn_mcp_server-0.1.0/README.md +210 -0
  7. learn_mcp_server-0.1.0/docs/project-design-and-roadmap.md +1109 -0
  8. learn_mcp_server-0.1.0/examples/client_test.py +36 -0
  9. learn_mcp_server-0.1.0/examples/stdio_config.json +12 -0
  10. learn_mcp_server-0.1.0/examples/streamable_http_config.json +7 -0
  11. learn_mcp_server-0.1.0/pyproject.toml +49 -0
  12. learn_mcp_server-0.1.0/src/learn_mcp_server/__init__.py +3 -0
  13. learn_mcp_server-0.1.0/src/learn_mcp_server/data/__init__.py +15 -0
  14. learn_mcp_server-0.1.0/src/learn_mcp_server/data/concepts.py +197 -0
  15. learn_mcp_server-0.1.0/src/learn_mcp_server/data/configs.py +142 -0
  16. learn_mcp_server-0.1.0/src/learn_mcp_server/data/curriculum.py +102 -0
  17. learn_mcp_server-0.1.0/src/learn_mcp_server/data/examples.py +135 -0
  18. learn_mcp_server-0.1.0/src/learn_mcp_server/data/practices.py +54 -0
  19. learn_mcp_server-0.1.0/src/learn_mcp_server/prompts/__init__.py +3 -0
  20. learn_mcp_server-0.1.0/src/learn_mcp_server/prompts/learning_prompts.py +84 -0
  21. learn_mcp_server-0.1.0/src/learn_mcp_server/registry.py +156 -0
  22. learn_mcp_server-0.1.0/src/learn_mcp_server/resources/__init__.py +15 -0
  23. learn_mcp_server-0.1.0/src/learn_mcp_server/resources/concept_resources.py +221 -0
  24. learn_mcp_server-0.1.0/src/learn_mcp_server/resources/config_resources.py +46 -0
  25. learn_mcp_server-0.1.0/src/learn_mcp_server/resources/curriculum_resources.py +32 -0
  26. learn_mcp_server-0.1.0/src/learn_mcp_server/resources/debug_resources.py +37 -0
  27. learn_mcp_server-0.1.0/src/learn_mcp_server/resources/example_resources.py +72 -0
  28. learn_mcp_server-0.1.0/src/learn_mcp_server/server.py +27 -0
  29. learn_mcp_server-0.1.0/src/learn_mcp_server/settings.py +25 -0
  30. learn_mcp_server-0.1.0/src/learn_mcp_server/tools/__init__.py +17 -0
  31. learn_mcp_server-0.1.0/src/learn_mcp_server/tools/basic_tools.py +71 -0
  32. learn_mcp_server-0.1.0/src/learn_mcp_server/tools/concept_tools.py +95 -0
  33. learn_mcp_server-0.1.0/src/learn_mcp_server/tools/config_tools.py +112 -0
  34. learn_mcp_server-0.1.0/src/learn_mcp_server/tools/debug_tools.py +122 -0
  35. learn_mcp_server-0.1.0/src/learn_mcp_server/tools/example_tools.py +54 -0
  36. learn_mcp_server-0.1.0/src/learn_mcp_server/tools/practice_tools.py +141 -0
  37. learn_mcp_server-0.1.0/src/learn_mcp_server/utils/__init__.py +10 -0
  38. learn_mcp_server-0.1.0/src/learn_mcp_server/utils/formatters.py +25 -0
  39. learn_mcp_server-0.1.0/src/learn_mcp_server/utils/validators.py +39 -0
  40. learn_mcp_server-0.1.0/tests/test_examples.py +35 -0
  41. learn_mcp_server-0.1.0/tests/test_mcp_integration.py +78 -0
  42. learn_mcp_server-0.1.0/tests/test_prompts.py +38 -0
  43. learn_mcp_server-0.1.0/tests/test_resources.py +278 -0
  44. learn_mcp_server-0.1.0/tests/test_settings.py +22 -0
  45. learn_mcp_server-0.1.0/tests/test_structure.py +86 -0
  46. learn_mcp_server-0.1.0/tests/test_tools.py +289 -0
  47. learn_mcp_server-0.1.0/tests/test_utils.py +44 -0
  48. learn_mcp_server-0.1.0/uv.lock +1764 -0
@@ -0,0 +1,5 @@
1
+ LEARN_MCP_TRANSPORT=stdio
2
+
3
+ # Supported values:
4
+ # - stdio
5
+ # - streamable-http
@@ -0,0 +1,12 @@
1
+ .env
2
+ .venv/
3
+ venv/
4
+ __pycache__/
5
+ *.py[cod]
6
+ .pytest_cache/
7
+ .mypy_cache/
8
+ .ruff_cache/
9
+ .idea/
10
+ .DS_Store
11
+ dist/
12
+ *.egg-info/
@@ -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 配置的运行方式。