galaxy-maps-mcp
Enables validation, saving, publishing, and inspection of Galaxy Maps courses from local JSON files via Firebase integration.
README
galaxy-maps-mcp
MCP stdio server for validating, saving, publishing, and inspecting Galaxy Maps courses from local JSON files.
Setup
Install dependencies with Bun when you are ready to run the server:
bun install
Runtime environment is read lazily, so the server can start without credentials. Firebase credentials are only required for tools that call Firebase.
export GALAXY_MAPS_FIREBASE_API_KEY="..."
export GALAXY_MAPS_EMAIL="..."
export GALAXY_MAPS_PASSWORD="..."
Optional overrides:
export GALAXY_MAPS_PROJECT_ID="galaxy-maps-ac367"
export GALAXY_MAPS_REGION="us-central1"
The Firebase API key value already lives in the platform repo .env as VITE_FIREBASE_API_KEY; reuse that value here as GALAXY_MAPS_FIREBASE_API_KEY.
Claude MCP Registration
Add this to ~/.claude.json:
{
"mcpServers": {
"galaxy-maps-mcp": {
"command": "bun",
"args": ["/home/ian/code/galaxy-maps-mcp/src/server.ts"],
"env": {
"GALAXY_MAPS_FIREBASE_API_KEY": "your-api-key",
"GALAXY_MAPS_EMAIL": "your-email",
"GALAXY_MAPS_PASSWORD": "your-password"
}
}
}
}
Tools
validate_galaxy_map
Input:
{ "jsonPath": "/absolute/path/to/galaxy-map.json" }
Reads a local JSON file with Bun.file(path).text(). Accepts either a bare Galaxy Map object or a wrapped object:
{ "galaxyMap": { "...": "..." }, "mapLayout": "zigzag" }
Validation checks title, description, non-empty stars, non-empty planets, and required planet mission content. The report includes star count, planet count, total payload bytes, per-planet mission field byte sizes, and warnings for large payloads. It never prints mission HTML or the full map.
save_galaxy_map
Input:
{ "jsonPath": "/absolute/path/to/galaxy-map.json", "mapLayout": "zigzag" }
mapLayout is optional and may be "zigzag" or "spiral". The selected layout is explicit input first, then wrapped file mapLayout, then "zigzag".
Flow:
- Validate the local file.
- Sign in with Firebase Auth REST.
- POST to
https://{GALAXY_MAPS_REGION}-{GALAXY_MAPS_PROJECT_ID}.cloudfunctions.net/saveGalaxyMap. - Return course ID, total planets, layout, and
https://app.galaxymaps.io/galaxy/{courseId}.
publish_course
Input:
{
"courseId": "course-id",
"visibility": "unlisted",
"presentationOnly": false
}
visibility defaults to "unlisted" and may be "private", "unlisted", or "public". presentationOnly defaults to false.
Behavior:
- Public visibility patches the course to
status: "submitted"andvisibility: "public", then stops because admin review is required. - Private or unlisted visibility publishes the course.
- If the course has no cohort and
presentationOnlyis false, the tool creates a default Squad cohort and attaches it to the course. - If
presentationOnlyis true, the course is patched withpresentationOnly: trueandpublic: false.
get_course_status
Input:
{ "courseId": "course-id" }
Reads courses/{courseId} from Firestore REST and returns title, status, visibility, public flag, cohort, topic total, task total, and course URL.
Development
Run a TypeScript check:
bunx tsc --noEmit
Run the local handshake smoke test after dependencies are installed:
bun test/handshake.ts
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.