# Gaia MCP Server > **⚠️ DEPRECATED** > > This repository is deprecated and is no longer actively maintained. Please use the new Go implementation instead: > > **👉 [github.com/SipherAGI/gaia-mcp-go](https://github.com/SipherAGI/gaia-mcp-go)** > > The Go implementation provides better performance, easier installation, and active maintenance. An MCP (Model Context Protocol) server implementation for ProtoGaia, supporting both stdio and SSE (Server-Sent Events) communication methods. ## Table of Contents - [Introduction](#introduction) - [Installation](#installation) - [Usage](#usage) - [Integrate with Claude Desktop](#integrate-with-claude-desktop) - [Using Stdio Method](#using-stdio-method) - [Using SSE Method](#using-sse-method) - [Understanding MCP](#understanding-mcp) - [API Endpoints](#api-endpoints) - [Supported Tools](#supported-tools) - [Notice](#notice) ## Introduction This package contains a TypeScript implementation of an MCP server for ProtoGaia. It provides a standardized way for LLMs (Large Language Models) to communicate with external tools and services using the Model Context Protocol. ## Installation You can use Gaia MCP Server in multiple ways: ### Using with npx (No Installation) Run the server directly using npx without installing: ```bash # Run in SSE mode npx @ather-mcp/gaia-mcp-server sse # Run in stdio mode npx @ather-mcp/gaia-mcp-server stdio --api-key=your-api-key ``` ### Global Installation Install the package globally to run from anywhere: ```bash npm install -g @ather-mcp/gaia-mcp-server ``` Then run it from any terminal: ```bash # Run in SSE mode gaia-mcp-server sse # Run in stdio mode gaia-mcp-server stdio --api-key=your-api-key ``` ## Usage The server can be run in two modes: stdio or SSE. You can choose which mode to run using the command-line interface. ### Integrate with Claude Desktop You can integrate Gaia MCP Server with Claude Desktop to generate images directly in your conversations: 1. **Get Your Gaia API Key**: - Log in to [Gaia's website](https://protogaia.com) - Go to your account settings via your profile picture - Navigate to the "Security" section - Create a new API key and copy it 2. **Configure Claude Desktop**: - Open Claude Desktop - Go to Settings (File > Settings on Windows, Claude > Settings on Mac) - Click the "Developer" tab - Click the "Edit config" button - Replace the content with one of these configurations: **If you've installed the package globally**: ```json { "mcpServers": { "gaia-mcp-server": { "command": "gaia-mcp-server", "args": ["stdio", "--api-key=YOUR_GAIA_API_KEY"] } } } ``` **If you prefer to use npx (no installation)**: ```json { "mcpServers": { "gaia-mcp-server": { "command": "npx", "args": ["gaia-mcp-server", "stdio", "--api-key=YOUR_GAIA_API_KEY"] } } } ``` Replace `YOUR_GAIA_API_KEY` with your actual Gaia API key. 3. **Restart Claude Desktop** 4. **Test the Integration**: - Start a new conversation - Ask Claude to generate an image (e.g., "Generate an image of a sunset over mountains") - You should see the image appear in your conversation For more detailed instructions and troubleshooting, see our [Claude Desktop Integration Guide](docs/claude-desktop-stdio-integration-guide.md). ### Using Stdio Method The stdio method is useful for direct communication with the server via standard input/output streams, typically used when integrating with CLI tools or developing locally. To start the server in stdio mode: ```bash # Using npx npx @ather-mcp/gaia-mcp-server stdio --api-key=your-api-key # Using globally installed package gaia-mcp-server stdio --api-key=your-api-key ``` You can also specify a custom API URL: ```bash npx @ather-mcp/gaia-mcp-server stdio --api-key=your-api-key --api-url=https://your-custom-api-url ``` With the stdio method, communication with the server happens through stdin/stdout, following the MCP protocol format. Example of sending a message through stdio: ```json { "type": "message", "data": { "content": "Your message content here" } } ``` ### Using SSE Method The SSE method allows for server-sent events communication over HTTP, making it suitable for web applications. To start the server in SSE mode: ```bash # Using npx npx @ather-mcp/gaia-mcp-server sse # Using globally installed package gaia-mcp-server sse ``` The server will start on the port specified in your .env file (default: 3000). #### Connecting to the SSE Server To establish an SSE connection: 1. Create an EventSource connection to `/sse` endpoint with your Gaia's account API Key. More information about creating your API key can be found at [here](https://protogaia.com/settings/account?tab=Security). 2. Send messages via POST requests to `/messages` endpoint Client-side JavaScript example: ```javascript // Establish SSE connection const eventSource = new EventSource('http://localhost:3000/sse?apiKey=your-gaia-account-api-key'); const sessionId = ''; // Will be populated from the first message // Listen for messages eventSource.onmessage = event => { const data = JSON.parse(event.data); // Store session ID from first message if (data.sessionId && !sessionId) { sessionId = data.sessionId; } console.log('Received:', data); }; // Send a message async function sendMessage(content) { await fetch('http://localhost:3000/messages', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ sessionId, message: { type: 'message', data: { content }, }, }), }); } ``` ## Understanding MCP The Model Context Protocol (MCP) is a standardized communication protocol that enables LLMs to interact with external tools and services. More information can be found at [modelcontextprotocol.io](https://modelcontextprotocol.io/introduction). Key MCP concepts: - **Messages**: The basic unit of communication in the protocol - **Tools**: Functions that can be called by the model - **Transport Layers**: Methods of communication (stdio, SSE, etc.) - **Sessions**: Stateful interactions between the model and server This server implementation uses the `@modelcontextprotocol/sdk` package to handle the protocol details. ## API Endpoints When running in SSE mode, the following endpoints are available: - `GET /sse`: Establishes an SSE connection - `POST /messages`: Sends messages to the server - `GET /health`: Health check endpoint - `GET /`: Basic information about the server ## Supported Tools The Gaia MCP Server provides several AI image generation and manipulation tools that can be called by LLMs: - **upload-image**: Upload images to the Gaia platform from URLs - **create-style**: Create a new style in the Gaia platform using provided images - **generate-image**: Generate images with Protogaia based on text prompts - **remix**: Create new variations of an existing image - **face-enhancer**: Enhance face details in an existing image - **upscaler**: Enhance the resolution quality of image Each tool is registered with the MCP server and can be invoked according to the Model Context Protocol standard. ## License Apache License 2.0 ## Notice - To utilize the generative image functionality, the user must possess GAIA credits. You can check your remaining credits and purchase more [here](https://protogaia.com/settings/account?tab=Plans).