SWAPI MCP
A TypeScript-based Model Context Protocol (MCP) server that exposes Star Wars API data as MCP tools.
This project connects to the Star Wars API (SWAPI) and makes selected Star Wars information available through
MCP-compatible clients using stdio transport.
Features
- MCP server built with TypeScript
- stdio-based MCP transport
- Fetches Star Wars data from SWAPI
- Tool schema validation with Zod
- Includes Vitest test setup
- Supports coverage reports
Tech Stack
- TypeScript
- Node.js
- Model Context Protocol SDK
- Zod
- Vitest
- tsx
Project Structure
text swapi-mcp/
├── src/ # Source code
├── tests/ # Test files and mock data
│ ├── api/
│ └── mock_data/
├── package.json
├── package-lock.json
├── tsconfig.json
└── vitest.config.js
Requirements
Some MCP-related dependencies require Node.js 20+, so using the latest LTS version is recommended.
Installation
npm install
Clone the repository and install dependencies:
Available Scripts
Start the development server
npm run start
Runs the MCP server directly from TypeScript using tsx.
Build the project
npm run build
Compiles TypeScript into JavaScript using the TypeScript compiler.
Run tests
npm run test
When started, the server connects using stdio and can be used by MCP-compatible clients.
Returns a comma-separated list of available Star Wars information categories from SWAPI, such as:
- people
- planets
- films
- species
- vehicles
- starships
Returns Star Wars character information exposed by the project’s character tool.
Example MCP Client Configuration
You can configure an MCP-compatible client to run this server with npm:
{ "mcpServers": { "swapi-mcp": { "command": "npm", "args": ["start"] } } }
If your client requires an absolute working directory, configure it like this:
{ "mcpServers": { "swapi-mcp": { "command": "npm", "args": ["start"], "cwd": "/absolute/path/to/swapi-mcp" } } }