内容
<div align="center">
# 项目简介
**一个将我的 AI 项目集成为可查询的 MCP 服务器,而不仅仅是静态展示。**
将任何 MCP 客户端(Claude Desktop、Cursor、自定义代理)指向它并询问
*"Ayush 用 LangGraph 构建了什么?"* 或 *"他的旗舰项目是什么?"*
— 它从实时结构化数据中回答,而不是静态 PDF。
[](LICENSE)
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io)
[](https://github.com/ayush-s-tomar/portfolio-mcp-server/actions/workflows/ci.yml)
[](https://github.com/astral-sh/ruff)
[](CONTRIBUTING.md)
<img src="assets/MCP.gif" alt="项目演示" width="720">
[观看完整演示视频 ▶](https://github.com/user-attachments/assets/4c1b844a-087f-48a6-b156-bdef27282acc)
</div>
---
## 目录
- [为什么存在这个项目](#为什么存在这个项目)
- [演示](#演示)
- [公开工具](#公开工具)
- [快速开始](#快速开始)
- [连接到 Claude Desktop](#连接到Claude-Desktop)
- [技术栈](#技术栈)
- [测试与 CI](#测试与CI)
- [项目结构](#项目结构)
- [路线图](#路线图)
- [许可证](#许可证)
- [作者](#作者)
## 为什么存在这个项目
大多数 AI 开发者的项目集只是链接列表。这是一个可用的 MCP 服务器——与代理产品用于连接工具的相同协议——围绕我的项目集构建。它既是规范的真实实现,也是 *"展示你实际使用 MCP 构建的东西"* 而不仅仅是谈论它的答案。
## 演示
| MCP Inspector — 工具发现 | Live chat demo |
|---|---|
|  |  |
完整视频演示(设置 → 工具调用 → 实时答案):**[观看视频 ▶](https://github.com/user-attachments/assets/4c1b844a-087f-48a6-b156-bdef27282acc)**
## 公开工具
| 工具 | 描述 |
|---|---|
| `list_projects` | 所有 9 个项目的简要摘要 |
| `get_project_details(project_name)` | 一个项目的完整详细信息 |
| `search_projects_by_stack(technology)` | 查找使用给定技术的项目 |
| `get_flagship_project` | 最值得查看的项目 |
| `get_resume_summary` | 背景、目标角色和核心技术栈 |
## 快速开始
```bash
git clone https://github.com/ayush-s-tomar/portfolio-mcp-server.git
cd portfolio-mcp-server
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
```
使用 MCP Inspector 进行交互式测试,然后再将其连接到客户端:
```bash
mcp dev server.py
```
这将打开一个浏览器 UI,您可以在其中手动调用每个工具并检查原始请求/响应有效载荷。
## 连接到 Claude Desktop
打开您的 Claude Desktop 配置文件:
| 操作系统 | 路径 |
|---|---|
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
如果文件已经具有包含其他服务器的 `mcpServers` 键,请在现有对象中添加 `"portfolio"` 条目,而不是覆盖文件。使用您计算机上 `server.py` 的**绝对路径**:
```json
{
"mcpServers": {
"portfolio": {
"command": "python",
"args": ["/absolute/path/to/portfolio-mcp-server/server.py"]
}
}
}
```
重启 Claude Desktop,然后询问类似:
> "Ayush 用 FastAPI 构建了哪些项目?"
Claude 将调用 `search_projects_by_stack` 并从实时数据中回答。
## 技术栈
- **Python 3.10+**
- **[MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk)** (`FastMCP`)
- **stdio 传输**
## 测试与 CI
每次推送和拉取请求都会通过 GitHub Actions 运行:
- **Lint** — `ruff check .`
- **类型检查** — `mypy server.py`
- **烟雾测试** — 启动服务器并通过 stdio 调用每个工具以确认它们返回有效、匹配模式的 JSON
参见 [.github/workflows/ci.yml](.github/workflows/ci.yml)。在打开 PR 之前,在本地运行相同的检查:
```bash
pip install -r requirements-dev.txt
ruff check .
mypy server.py
pytest
```
## 项目结构
portfolio-mcp-server/
├── server.py # FastMCP 服务器 + 工具定义
├── data/
│ └── projects.json # 工具读取的项目数据
├── tests/
│ └── test_tools.py # 每个工具的烟雾测试
├── requirements.txt
├── requirements-dev.txt
└── .github/workflows/ci.yml
## 路线图
- [ ] `search_projects_by_stack` — 支持一次匹配多个技术
- [ ] 为远程客户端添加 HTTP/SSE 传输选项
- [ ] 发布到 MCP 服务器注册表
- [ ] 使用轻量级刷新端点缓存简历/项目数据,而不是静态 JSON
## 许可证
在 [MIT License](LICENSE) 下发布。
## 作者
**Ayush Tomar** — [GitHub](https://github.com/ayush-s-tomar)
如果这对您构建自己的 MCP 服务器有帮助,请在仓库上点赞。
mcp-name: io.github.ayush-s-tomar/portfolio-mcp-server