Skip to main content
Glama

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-slim Docker 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 skillz directory. 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 the tmp directory 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.md for 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.

  1. Clone the repository:

    git clone https://github.com/pwntato/skillz_mcp cd skillz_mcp
  2. Start the server:

    docker compose up -d

    This command will build the Docker image (if not already built) and start the server in detached mode.

  3. Access the API Documentation: The server will be available at http://localhost:8000. You can access the interactive API documentation (Swagger UI) by navigating to http://localhost:8000/docs in your web browser.

API Endpoints

  • /: Redirects to the API documentation (/docs).

  • /skills: Returns an instruction field explaining the purpose of skills for LLMs, along with a list of available skills, including their name, description, and skill_id (derived from the skill's directory name).

  • /skills/{skill_id}/{file_path:path}: Retrieves an instruction field 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 an instruction field 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 skillz directory is mounted into the container at /skillz and can be used for storing and accessing data.

  • The tmp directory 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):

PYTHONPATH=. pytest

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.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pwntato/skillz_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server