Mcp Starwars
用于 SWAPI 星球大战 API 的 MCP 服务器。该项目的主要目标是展示如何使用 MCP 服务器与 API 进行交互。
johnpapa
README
<div align="center">
# 星球大战 MCP 服务器
[](https://codespaces.new/johnpapa/mcp-starwars?hide_repo_select=true&ref=main&quickstart=true)
[](https://smithery.ai/server/@johnpapa/mcp-starwars)
[](LICENSE)
[](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22starwars%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40johnpapa%2Fmcp-starwars%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://insiders.vscode.dev/redirect?url=vscode-insiders:mcp/install?%7B%22name%22%3A%22starwars%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40johnpapa%2Fmcp-starwars%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22starwars%22%2C%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Fstarwars%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://insiders.vscode.dev/redirect?url=vscode-insiders:mcp/install?%7B%22name%22%3A%22starwars%22%2C%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Fstarwars%22%5D%2C%22env%22%3A%7B%7D%7D)
[特性](#features) • [工具](#tools) • [设置](#setup) • [配置 MCP 主机](#configuring-an-mcp-host)
</div>
用于 [SWAPI 星球大战 API](https://swapi.dev) 的 MCP 服务器。_该项目的主要目标是展示如何使用 MCP 服务器与 API 交互。_
> **注意**: 此 MCP 服务器使用的所有数据均来自 SWAPI 文档](https://swapi.dev)。
<a name="features"></a>
## 🔧 特性
- **列出星球大战角色**: 获取角色数据,带有可选的搜索过滤器和自动分页
- **列出星球、电影、物种、载具和星际飞船**: 访问所有星球大战实体集合,具有搜索功能
- **按 ID 获取实体详细信息**: 获取有关特定角色、星球、电影、物种、载具或星际飞船的详细信息
- **自动分页**: 通过单个 API 调用无缝检索所有数据页面
- **内置缓存**: 通过智能 API 响应缓存优化性能
- **缓存管理**: 清除缓存并查看缓存统计信息以监控性能
- **基于工具的 MCP 集成**: 使用模型上下文协议 (MCP) 工具(VS Code、Claude 等)注册此服务器
<a name="tools"></a>
## 🧰 工具
### 1. `get_people` 🧑🤝🧑
- **描述**: 列出星球大战角色,具有自动分页和可选搜索
- **输入**:
- `page` (可选数字): 要检索的页码(默认为 1)
- `search` (可选字符串): 要搜索的名称或部分名称
- `fetchAllPages` (可选布尔值): 是否自动获取所有结果页面(默认为 true)
- **返回**: 星球大战角色数据的集合,包括姓名、身体属性、母星和相关实体
### 2. `get_person_by_id` 👤
- **描述**: 按 ID 获取有关特定星球大战角色的详细信息
- **输入**:
- `id` (字符串或数字): 角色的唯一标识符
- **返回**: 请求角色的完整数据,包括姓名、身体属性、母星和相关实体
### 3. `get_planets` 🪐
- **描述**: 列出星球大战星球,具有自动分页和可选搜索
- **输入**:
- `page` (可选数字): 要检索的页码(默认为 1)
- `search` (可选字符串): 要搜索的星球名称或部分名称
- `fetchAllPages` (可选布尔值): 是否自动获取所有结果页面(默认为 true)
- **返回**: 星球大战星球数据的集合,包括气候、地形、人口和相关实体
### 4. `get_planet_by_id` 🌍
- **描述**: 按 ID 获取有关特定星球大战星球的详细信息
- **输入**:
- `id` (字符串或数字): 星球的唯一标识符
- **返回**: 请求星球的完整数据,包括气候、地形、人口和相关实体
### 5. `get_films` 🎬
- **描述**: 列出星球大战电影,具有自动分页和可选搜索
- **输入**:
- `page` (可选数字): 要检索的页码(默认为 1)
- `search` (可选字符串): 要搜索的电影标题或部分标题
- `fetchAllPages` (可选布尔值): 是否自动获取所有结果页面(默认为 true)
- **返回**: 星球大战电影数据的集合,包括标题、剧集 ID、导演和相关实体
### 6. `get_film_by_id` 📽️
- **描述**: 按 ID 获取有关特定星球大战电影的详细信息
- **输入**:
- `id` (字符串或数字): 电影的唯一标识符
- **返回**: 请求电影的完整数据,包括标题、剧集 ID、导演和相关实体
### 7. `get_species_list` 👽
- **描述**: 列出星球大战物种,具有自动分页和可选搜索
- **输入**:
- `page` (可选数字): 要检索的页码(默认为 1)
- `search` (可选字符串): 要搜索的物种名称或部分名称
- `fetchAllPages` (可选布尔值): 是否自动获取所有结果页面(默认为 true)
- **返回**: 星球大战物种数据的集合,包括分类、身体属性和相关实体
### 8. `get_species_by_id` 🧬
- **描述**: 按 ID 获取有关特定星球大战物种的详细信息
- **输入**:
- `id` (字符串或数字): 物种的唯一标识符
- **返回**: 请求物种的完整数据,包括分类、身体属性和相关实体
### 9. `get_vehicles` 🚗
- **描述**: 列出星球大战载具,具有自动分页和可选搜索
- **输入**:
- `page` (可选数字): 要检索的页码(默认为 1)
- `search` (可选字符串): 要搜索的载具名称或部分名称
- `fetchAllPages` (可选布尔值): 是否自动获取所有结果页面(默认为 true)
- **返回**: 星球大战载具数据的集合,包括型号、制造商和规格
### 10. `get_vehicle_by_id` 🚙
- **描述**: 按 ID 获取有关特定星球大战载具的详细信息
- **输入**:
- `id` (字符串或数字): 载具的唯一标识符
- **返回**: 请求载具的完整数据,包括型号、制造商和规格
### 11. `get_starships` 🚀
- **描述**: 列出星球大战星际飞船,具有自动分页和可选搜索
- **输入**:
- `page` (可选数字): 要检索的页码(默认为 1)
- `search` (可选字符串): 要搜索的星际飞船名称或部分名称
- `fetchAllPages` (可选布尔值): 是否自动获取所有结果页面(默认为 true)
- **返回**: 星球大战星际飞船数据的集合,包括型号、制造商和规格
### 12. `get_starship_by_id` 🛸
- **描述**: 按 ID 获取有关特定星球大战星际飞船的详细信息
- **输入**:
- `id` (字符串或数字): 星际飞船的唯一标识符
- **返回**: 请求星际飞船的完整数据,包括型号、制造商和规格
### 13. `clear_cache` 🧹
- **描述**: 清除星球大战 API 缓存(部分或全部)
- **输入**:
- `endpoint` (可选字符串): 要从缓存中清除的特定端点。 留空以清除所有内容。
- **返回**: 确认消息,指示已清除哪个缓存
### 14. `get_cache_stats` 📊
- **描述**: 获取有关星球大战 API 缓存使用情况的统计信息
- **输入**: 无
- **返回**: 缓存命中/未命中统计信息、大小和性能指标
<a name="setup"></a>
## 🛠️ 设置
### 在 VS Code 中快速安装
为了最快地安装,请单击本 README 顶部的一个 VS Code 安装按钮。
### 在 VS Code 中手动安装
#### 使用命令行
您可以使用以下命令手动安装星球大战 MCP 服务器:
**对于 VS Code 稳定版:**
```bash
code --add-mcp '{"name":"starwars","command":"npx","args":["-y","@johnpapa/mcp-starwars"],"env":{}}'
对于 VS Code Insiders:
code-insiders --add-mcp '{"name":"starwars","command":"npx","args":["-y","@johnpapa/mcp-starwars"],"env":{}}'
使用 VS Code 设置
- 打开 VS Code 设置(文件 > 首选项 > 设置)
- 单击右上角的“打开设置 (JSON)”图标
- 将以下配置添加到您的 settings.json 文件:
"mcp": {
"servers": {
"starwars": {
"command": "npx",
"args": ["-y", "@johnpapa/mcp-starwars"],
"env": {}
}
}
},
"chat.mcp.discovery.enabled": true
通过 Smithery 安装
要通过 Smithery 为 Claude Desktop 自动安装星球大战 MCP 服务器:
npx -y @smithery/cli install @johnpapa/mcp-starwars --client claude
在本地使用 MCP Inspector 运行 MCP 服务器
如果您想在本地运行 MCP Inspector 来测试服务器,请按照以下步骤操作:
-
克隆此存储库:
git clone https://github.com/johnpapa/-mcp-starwars
-
安装所需的依赖项并构建项目。
npm install npm run build
-
(可选) 要使用 MCP Inspector 试用服务器,请运行以下命令:
# 启动 MCP Inspector npx @modelcontextprotocol/inspector node build/index.js
在浏览器中访问控制台中显示的 MCP Inspector URL。 将
Arguments
更改为dist/index.js
并选择Connect
。 选择List Tools
以查看可用的工具。
<a name="configuring-an-mcp-host"></a>
在 GitHub Copilot 中运行 MCP 服务器,并使用 VS Code Insiders 托管
注意: 如果您已经使用 Claude Desktop 启用了 MCP 服务器,请在您的 VS Code 设置中添加
chat.mcp.discovery.enabled: true
,它将发现现有的 MCP 服务器列表。
如果您想将 MCP 服务器与特定存储库关联,请创建一个包含以下内容的 .vscode/mcp.json
文件:
{
"inputs": [],
"servers": {
"mcp-starwars": {
"command": "npx",
// "command": "node",
"args": [
"-y",
"@johnpapa/mcp-starwars"
// "_git/mcp-starwars/dist/index.js"
],
"env": {}
}
}
}
如果您想将 MCP 服务器与所有存储库关联,请将以下内容添加到您的 VS Code 用户设置 JSON:
"mcp": {
"servers": {
"mcp-starwars": {
"command": "npx",
// "command": "node",
"args": [
"-y",
"@johnpapa/mcp-starwars"
// "/Users/papa/_git/mcp-starwars/dist/index.js"
// "_git/mcp-starwars/dist/index.js"
],
"env": {}
}
}
}
"chat.mcp.discovery.enabled": true,
在 GitHub Copilot 中使用工具
-
现在 MCP 服务器已可发现,打开 GitHub Copilot 并选择
Agent
模式(而不是Chat
或Edits
)。 -
选择 Copilot 聊天文本字段中的“刷新”按钮以刷新服务器列表。
-
选择“🛠️”按钮以查看所有可能的工具,包括来自此存储库的工具。
-
在聊天中提出一个自然会调用其中一个工具的问题,例如:
如何设置我的 VS Code 强调色?
注意: 如果您看到“抱歉,响应已被负责任的 AI 服务过滤。请重新措辞并重试。”,请再次运行或重新措辞提示。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。