Token导航 LogoToken导航TokenDH.com
nl MCP workshop logo
AI代理stdio官方级别未说明来源级核验

nl MCP workshop

MCP Server

一个基于FastMCP和星球大战API(SWAPI)构建的MCP服务器,提供星球大战数据访问、收藏夹管理和数据探索功能。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
API集成开发工具PythonClaude数据管理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lurelars

提供方

lurelars

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv mcp_workshop

详细介绍

星球大战API MCP研讨会

一个实践研讨会项目,演示如何使用FastMCP和星球大战API(SWAPI)构建模型上下文协议(MCP)服务器。

概述

此MCP服务器提供:

  • 资源:访问《星球大战》API数据(人、行星、星舰、电影)
  • 工具:用于存储和管理喜爱的《星球大战》物品的数据库操作
  • 提示词:用于探索和比较《星球大战》数据的助手工作流程

项目结构

nl_mcp_workshop/
├── src/
│   ├── mcp_server.py       # Main MCP server implementation
│   ├── swapi_client.py     # Star Wars API client
│   └── database.py         # Local database operations
├── data/
│   └── local_db.json       # JSON database for favorites
├── config/
│   └── mcp_config.json     # MCP server configuration
├── tests/
│   ├── conftest.py         # Pytest fixtures
│   ├── test_database.py    # Database unit tests
│   ├── test_swapi_client.py # SWAPI client unit tests
│   └── test_integration.py # Integration tests
├── requirements.txt        # Python dependencies
├── environment.yml         # Conda environment file
└── setup.py               # Package setup

安装说明

先决条件

  • Python 3.12或更高版本
  • pip或conda包管理器

选项1:使用虚拟环境(venv)

  1. 创建并激活虚拟环境:
   python3 -m venv mcp_workshop
   source mcp_workshop/bin/activate  # On Windows: mcp_workshop\Scripts\activate
  1. 安装依赖项:
   pip install -r requirements.txt
  1. 在开发模式下安装软件包:
   pip install -e .

选项2:使用Conda/Miniconda

  1. 从文件创建环境:
   conda env create -f environment.yml
  1. 激活环境:
   conda activate mcp_workshop
  1. 在开发模式下安装软件包:
   pip install -e .

运行MCP服务器

方法1:直接执行

cd src
python mcp_server.py

方法2:从任何地方(之后 pip install -e .)

python src/mcp_server.py

使用Claude Desktop进行配置

要将此MCP服务器与Claude Desktop一起使用,请将以下内容添加到您的Claude Desktop配置文件中:

macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "starwars-workshop": {
      "command": "python",
      "args": [
        "/absolute/path/to/nl_mcp_workshop/src/mcp_server.py"
      ],
      "env": {
        "PYTHONPATH": "/absolute/path/to/nl_mcp_workshop"
      }
    }
  }
}

注: 替换 /absolute/path/to/nl_mcp_workshop 带有项目目录的实际路径。

特性

资源(只读API访问)

使用URI模式访问《星球大战》数据:

  • swapi://people/{person_id} -获取角色信息(ID1-83)
  • swapi://planets/{planet_id} -获取行星信息(ID 1-60)
  • swapi://starships/{starship_id} -获取星舰信息
  • swapi://films/{film_id} -获取电影信息(ID 1-6)

工具(数据库操作)

管理您最喜欢的《星球大战》物品:

  • add_favorite(项目类型、项目id、备注) -将项目保存到收藏夹
  • list_favorites(项目类型) -列出所有收藏夹(可选筛选器)
  • remove_favorite(项目类型,项目id) -从收藏夹中删除
  • update_favorite_notes(item_type、item_id、notes) -更新笔记
  • 搜索偏好(查询) -按关键字搜索收藏夹

提示(助手工作流)

常见任务的预配置工作流:

  • explore_character(字符名) -全面的性格探索
  • compareitems(item_type、id1、id2) -并排比较

运行测试

运行所有测试:

pytest -v

运行特定的测试文件:

pytest tests/test_database.py -v
pytest tests/test_swapi_client.py -v
pytest tests/test_integration.py -v

跑步覆盖:

pytest --cov=src --cov-report=html

通过打开查看覆盖率报告 htmlcov/index.html 在您的浏览器中。

示例用法

连接到Claude后,您可以:

  1. 探索一个角色:
   Tell me about Luke Skywalker using the Star Wars API
  1. 保存收藏夹:
   Add Luke Skywalker (person ID 1) to my favorites with a note about him being the main hero
  1. 列出收藏夹:
   Show me all my favorite Star Wars characters
  1. 搜索您的笔记:
   Search my favorites for entries about Jedi
  1. 比较项目:
   Compare planets Tatooine (ID 1) and Alderaan (ID 2)

工作坊学习目标

该项目展示了:

  • 使用FastMCP构建MCP服务器
  • 实现用于外部API访问的资源
  • 为有状态操作创建工具
  • 定义复杂工作流的提示
  • API错误处理和数据验证
  • JSON本地数据持久化
  • 综合测试策略(单元+集成)

API 参考

星球大战API(SWAPI)

  • 基本URL:https://swapi.dev/api/
  • 文档:https://swapi.dev/documentation
  • 无需认证
  • 价格限制:请尊重

故障排除

导入错误

如果你遇到 ModuleNotFoundError:

# Make sure you're in the project root
pip install -e .

数据库问题

如果数据库损坏:

# Reset the database
echo '{"favorites": []}' > data/local_db.json

API超时

如果SWAPI速度慢或不可用:

  • 检查您的互联网连接
  • API可能正在经历高负载
  • 请稍等片刻,然后重试

贡献

这是一个工作坊项目!请随意:

  • 添加新的端点(车辆、物种)
  • 用更多功能增强数据库
  • 为复杂的工作流创建其他提示
  • 改进错误处理和日志记录

许可证

该项目作为MCP研讨会的一部分,用于教育目的。

资源

目录标签

目录标签

API集成开发工具PythonClaude数据管理本地部署星球大战MCP协议

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP