Skip to main content
Glama

MCP Server

by crebish
README.md6.21 kB
# MCP Server A remote Model Context Protocol (MCP) server implementation that provides tools for AI assistants to interact with external services and perform various operations. ## Overview This MCP server implements the [Model Context Protocol](https://modelcontextprotocol.io/) specification, allowing AI assistants to access custom tools and capabilities through a standardized JSON-RPC interface. The server runs on port 8000 and provides several built-in tools for basic operations and conversation archiving. ## Features - **JSON-RPC 2.0 Protocol**: Full implementation of the MCP specification - **Built-in Tools**: - `add`: Perform basic arithmetic operations - `reverse`: Reverse text strings - `save_conversation`: Archive conversations to aiarchives.duckdns.org - **Health Monitoring**: Built-in health check endpoint - **CORS Support**: Cross-origin resource sharing enabled - **Error Handling**: Comprehensive error handling with proper JSON-RPC error codes ## Prerequisites - Node.js (version 16 or higher) - npm or yarn package manager ## Usage ### Configuring Claude Desktop To use this MCP server with Claude Desktop, you need to add it to your Claude Desktop configuration file. #### Finding the Configuration File 1. Open Claude Desktop 2. Go to **Settings** (gear icon in the bottom left) 3. Click on **Advanced** in the left sidebar 4. Click **Open Config Folder** - this will open the folder containing `claude_desktop_config.json` 5. Open the `claude_desktop_config.json` file in your preferred text editor #### Adding the MCP Server Configuration Add the following configuration to your `claude_desktop_config.json` file: ```json { "mcpServers": { "aiarchives": { "command": "npx", "args": [ "-y", "mcp-remote", "https://aiarchives.duckdns.org/mcp", "--allow-http", "--transport", "http-only" ] } } } ``` **Note:** Make sure to restart Claude Desktop after making changes to the configuration file. ### Server Access This MCP server is hosted remotely and accessible at `https://aiarchives.duckdns.org/mcp`. Once you've configured Claude Desktop as described above, you can immediately start using the available tools without needing to run anything locally. **Note:** The server is always running and ready to accept requests through the MCP protocol. ### Local Deployment (Optional) If you want to run the server locally for development or testing purposes: 1. **Start the server:** ```bash npm start ``` Or run directly with Node.js: ```bash node server-mcp.js ``` 2. **Update the Claude Desktop configuration** to point to your local server: ```json { "mcpServers": { "aiarchives": { "command": "npx", "args": [ "-y", "mcp-remote", "http://localhost:8000/mcp", "--allow-http", "--transport", "http-only" ] } } } ``` **Important:** When running locally, the `save_conversation` tool will not work because it depends on the remote aiarchives API that's only available on the hosted server. The `add` and `reverse` tools will work normally. ### Available Endpoints #### POST `/mcp` Main MCP protocol endpoint that handles JSON-RPC requests. **Example request:** ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/list" } ``` #### GET `/health` Health check endpoint that returns server status. **Response:** ```json { "status": "healthy", "server": "Remote MCP Server", "timestamp": "2024-01-01T00:00:00.000Z" } ``` #### GET `/mcp` Debug endpoint that confirms the server is running. ## Available Tools ### 1. `add` Performs addition of two numbers. **Parameters:** - `a` (number): First number - `b` (number): Second number **Example:** ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "add", "arguments": { "a": 5, "b": 3 } } } ``` ### 2. `reverse` Reverses a text string. **Parameters:** - `text` (string): Text to reverse **Example:** ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "reverse", "arguments": { "text": "Hello World" } } } ``` ### 3. `save_conversation` Saves conversation content to aiarchives.duckdns.org and returns a shareable URL. **Parameters:** - `conversation` (string): Full conversation content as HTML or plain text **Example:** ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "save_conversation", "arguments": { "conversation": "<html><body>Conversation content...</body></html>" } } } ``` ## MCP Protocol Methods The server implements the following MCP protocol methods: - `initialize`: Initialize the MCP connection - `tools/list`: List available tools - `tools/call`: Execute a specific tool - `notifications/initialized`: Handle client initialization notification - `notifications/cancelled`: Handle request cancellation notification ## Error Handling The server returns proper JSON-RPC 2.0 error responses with standard error codes: - `-32600`: Invalid Request - `-32601`: Method not found - `-32602`: Invalid params - `-32603`: Internal error ## Development ### Project Structure ``` mcp-server/ ├── server-mcp.js # Main server implementation ├── package.json # Dependencies and scripts ├── .gitignore # Git ignore rules └── README.md # This file ``` ### Adding New Tools To add a new tool, modify the `tools/list` response and add a corresponding case in the `tools/call` switch statement in `server-mcp.js`. ### Testing Currently, there are no automated tests. You can test the server manually using curl or any HTTP client: ```bash # Health check curl http://localhost:8000/health # List tools curl -X POST http://localhost:8000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' ``` ## Dependencies - **express**: Web framework for Node.js - **body-parser**: Middleware for parsing request bodies - **cors**: Cross-origin resource sharing middleware

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/crebish/mcp-server'

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