返回 MCP 目录
public公开dns本地运行

mcp-starwars

一个基于SWAPI星战API的MCP服务器项目,提供星战角色、星球、电影等数据的查询功能,支持自动分页和缓存管理,可与VS Code等工具集成。

article

README

🚀 星球大战 MCP 服务器

本项目是星球大战 MCP 服务器,可提供星球大战相关的各类信息,如电影、人物、宇宙飞船等,还支持对这些信息进行创建、更新和删除等操作。

🚀 快速开始

启用 MCP 服务器发现

⚠️ 重要提示

如果您已经启用了带有Claude Desktop的MCP服务器,请在VS Code设置中添加chat.mcp.discovery.enabled: true,它将发现现有的MCP服务器列表。

关联 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中的工具

  1. 现在MCP服务器可以被发现后,打开GitHub Copilot并选择Agent模式(不是ChatEdits)。
  2. 在Copilot聊天文本字段中选择“刷新”按钮以刷新服务器列表。
  3. 选择“🛠️”按钮以查看所有可用工具,包括此仓库中的工具。
  4. 在聊天中提出一个自然会引发其中一个工具的问题,例如:
如何设置我的VS Code渐变颜色?

⚠️ 重要提示

如果您看到“抱歉,响应被负责任的人工智能服务过滤。请重新措辞并重试。”,请再次运行或重新措辞提示。

✨ 主要特性

19个可用函数

以下是支持的19个功能:

获取films

获取星球大战中的电影信息。

/**
 * 获取星球大战中的电影信息。
 * @param queryParams 查询参数
 * @returns 影片数据数组
 */
async getFilms(queryParams?: Record<string, unknown>): Promise<unknown[]>;

获取people

获取人物信息。

/**
 * 获取人物信息。
 * @param queryParams 查询参数
 * @returns 人物数据数组
 */
async getPeople(queryParams?: Record<string, unknown>): Promise<unknown[]>;

获取starships

获取宇宙飞船信息。

/**
 * 获取宇宙飞船信息。
 * @param queryParams 查询参数
 * @returns 宇宙飞船数据数组
 */
async getStarships(queryParams?: Record<string, unknown>): Promise<unknown[]>;

获取species

获取物种信息。

/**
 * 获取物种信息。
 * @param queryParams 查询参数
 * @returns 物种数据数组
 */
async getSpecies(queryParams?: Record<string, unknown>): Promise<unknown[]>;

获取planets

获取行星信息。

/**
 * 获取行星信息。
 * @param queryParams 查询参数
 * @returns 行星数据数组
 */
async getPlanets(queryParams?: Record<string, unknown>): Promise<unknown[]>;

获取vehicles

获取交通工具信息。

/**
 * 获取交通工具信息。
 * @param queryParams 查询参数
 * @returns 交通工具数据数组
 */
async getVehicles(queryParams?: Record<string, unknown>): Promise<unknown[]>;

获取everything

获取所有资源的信息。

/**
 * 获取所有资源的信息。
 * @param queryParams 查询参数
 * @returns 所有资源的数据数组
 */
async getEverything(queryParams?: Record<string, unknown>): Promise<unknown[]>;

创建films

创建新的电影条目。

/**
 * 创建新的电影条目。
 * @param body 请求正文
 * @returns 新的影片数据
 */
async createFilms(body: unknown): Promise<unknown>;

更新films

更新现有电影条目的信息。

/**
 * 更新现有电影条目的信息。
 * @param id 影片ID
 * @param body 请求正文
 * @returns 更新后的影片数据
 */
async updateFilms(id: string, body: unknown): Promise<unknown>;

删除films

删除现有电影条目。

/**
 * 删除现有电影条目。
 * @param id 影片ID
 * @returns 删除确认
 */
async deleteFilms(id: string): Promise<void>;

获取filmByID

通过ID获取特定电影信息。

/**
 * 通过ID获取特定电影信息。
 * @param id 影片ID
 * @returns 特定影片数据
 */
async getFilmByID(id: string): Promise<unknown>;

创建people

创建新的角色条目。

/**
 * 创建新的角色条目。
 * @param body 请求正文
 * @returns 新的角色数据
 */
async createPeople(body: unknown): Promise<unknown>;

更新people

更新现有角色条目的信息。

/**
 * 更新现有角色条目的信息。
 * @param id 角色ID
 * @param body 请求正文
 * @returns 更新后的角色数据
 */
async updatePeople(id: string, body: unknown): Promise<unknown>;

删除people

删除现有角色条目。

/**
 * 删除现有角色条目。
 * @param id 角色ID
 * @returns 删除确认
 */
async deletePeople(id: string): Promise<void>;

获取personByID

通过ID获取特定人物信息。

/**
 * 通过ID获取特定人物信息。
 * @param id 角色ID
 * @returns 特定角色数据
 */
async getPersonByID(id: string): Promise<unknown>;

创建starships

创建新的宇宙飞船条目。

/**
 * 创建新的宇宙飞船条目。
 * @param body 请求正文
 * @returns 新的宇宙飞船数据
 */
async createStarships(body: unknown): Promise<unknown>;

更新starships

更新现有宇宙飞船条目的信息。

/**
 * 更新现有宇宙飞船条目的信息。
 * @param id 宇宙飞船ID
 * @param body 请求正文
 * @returns 更新后的宇宙飞船数据
 */
async updateStarships(id: string, body: unknown): Promise<unknown>;

删除starships

删除现有宇宙飞船条目。

/**
 * 删除现有宇宙飞船条目。
 * @param id 宇宙飞船ID
 * @returns 删除确认
 */
async deleteStarships(id: string): Promise<void>;

获取starshipByID

通过ID获取特定宇宙飞船信息。

/**
 * 通过ID获取特定宇宙飞船信息。
 * @param id 宇宙飞船ID
 * @returns 特定宇宙飞船数据
 */
async getStarshipByID(id: string): Promise<unknown>;

📦 安装指南

使用VS Code插件安装

  1. 打开VS Code。
  2. 进入扩展视图(快捷键:Ctrl+Shift+X)。
  3. 搜索并安装“Star Wars MCP Server”扩展。

使用命令行安装

安装Node.js和npm

# 先下载并安装Node.js和npm
# https://nodejs.org/

安装MCP服务器

npm install -g starwars-mcp-server

使用Smithery安装

smithery add @johnpapa/starwars-mcp-server

💻 使用示例

基础用法

获取所有影片信息

await getEverything();

高级用法

创建新角色

const person = {
  name: "Luke Skywalker",
  height: "172",
  mass: "77",
  hair_color: "blond",
  skin_color: "fair"
};

await createPeople(person);

📚 详细文档

配置说明

启动服务器

starwars-mcp-server start

停止服务器

starwars-mcp-server stop

重新启动服务器

starwars-mcp-server restart

注意事项

  • 确保服务器已正确安装并运行。
  • 检查网络连接,确保可以访问服务。
  • 处理错误和异常情况。

希望这个文档能帮助您顺利使用Star Wars MCP Server!如果有任何问题,请随时联系支持团队。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端