Mission Control Plane (MCP) Server
Project Overview
This project implements a Mission Control Plane (MCP) server using FastAPI, designed to provide a robust and extensible backend for managing and interacting with various functionalities, referred to as "skills." It leverages Docker and Docker Compose for easy deployment and includes hot-reloading for efficient development.
Features
FastAPI Backend: A high-performance, easy-to-use web framework for building APIs with Python 3.11.
Dockerized Deployment: Packaged in a
python:3.11-slimDocker container for consistent environments.Docker Compose: Simplifies the management and orchestration of the server and its dependencies.
Hot-Reloading: Automatic code reloading during development for a smooth workflow.
Skills Feature: A dynamic system allowing LLMs to progressively discover and understand tools/functionalities defined in a structured
skillzdirectory. The MCP server serves as a documentation hub for these skills, enabling LLMs to interpret and execute actions based on the provided skill definitions. When implementing skills, agents should utilize thetmpdirectory for any local file generation or copying.Local Skill Execution: Skills exposed by the MCP can be retrieved and executed locally, providing flexibility for client-side operations. Refer to
GEMINI.mdfor detailed instructions on how to use skills locally.
Getting Started
To set up and run the MCP server, ensure you have Docker and Docker Compose installed.
Clone the repository:
git clone https://github.com/pwntato/skillz_mcp cd skillz_mcpStart the server:
docker compose up -dThis command will build the Docker image (if not already built) and start the server in detached mode.
Access the API Documentation: The server will be available at
http://localhost:8000. You can access the interactive API documentation (Swagger UI) by navigating tohttp://localhost:8000/docsin your web browser.
API Endpoints
/: Redirects to the API documentation (/docs)./skills: Returns aninstructionfield explaining the purpose of skills for LLMs, along with a list of available skills, including their name, description, andskill_id(derived from the skill's directory name)./skills/{skill_id}/{file_path:path}: Retrieves aninstructionfield explaining the purpose of skills for LLMs, along with the content of a specific file within a given skill's directory. This is used by LLMs for progressive loading of skill details and associated scripts./skills/{skill_id}/files: Returns aninstructionfield explaining the purpose of skills for LLMs, along with a list of all files within a given skill's directory.
Skills Development
The "skills" feature allows for dynamic extension of the MCP server's capabilities. Each skill is defined within its own directory under the skillz/ folder. The MCP server acts as a repository for these skill definitions, which are then interpreted and executed by an LLM.
The
skillzdirectory is mounted into the container at/skillzand can be used for storing and accessing data.The
tmpdirectory is available for generating or copying files locally during development or agent operations. Its contents are git-ignored.
Testing
Automated tests are configured using pytest and can be run locally or via GitHub Actions.
To run tests locally (ensure you have pytest and httpx installed in your local Python environment):
Contributing
Contributions are welcome! Please refer to GEMINI.md for development conventions and guidelines.
License
This project is licensed under the MIT License. See the LICENSE file for details.