# Simple Animal Data MCP Server A basic Model Context Protocol (MCP) server that provides static information about animals (cats, dogs, and birds) for use with Claude Desktop. ## Installation 1. Clone or download this project 2. Create a virtual environment and install dependencies: ```bash python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ## Usage ### Running the Server ```bash source venv/bin/activate python server.py ``` ### Available Tools The server provides three tools: - **get_cat_info**: Returns information about cats - **get_dog_info**: Returns information about dogs - **get_bird_info**: Returns information about birds ## Claude Desktop Configuration To use this MCP server with Claude Desktop, you need to create or edit the MCP configuration file: ### Configuration File Location **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows**: `%APPDATA%/Claude/claude_desktop_config.json` **Linux**: `~/.config/Claude/claude_desktop_config.json` ### Creating the Configuration File If the file doesn't exist, create it with the following content: ```json { "mcpServers": { "animal-data": { "command": "python", "args": ["/Users/james/Work/mcp/simple/server.py"], "cwd": "/Users/james/Work/mcp/simple", "env": { "PATH": "/Users/james/Work/mcp/simple/venv/bin:/usr/bin:/bin" } } } } ``` ### Alternative: Using Claude Desktop Settings You can also configure this through Claude Desktop: 1. Open Claude Desktop 2. Go to Settings (Cmd+, on macOS or Ctrl+, on Windows) 3. Navigate to the "Developer" tab 4. Click "Edit Config" to open the configuration file 5. Add the MCP server configuration as shown above **Important**: - Replace `/Users/james/Work/mcp/simple` with your actual project directory path - Restart Claude Desktop after making configuration changes ## Example Usage in Claude Desktop Once configured, you can ask Claude Desktop to use the animal data tools: ### Example Queries **"Tell me about cats"** - Claude will use the `get_cat_info` tool and return: "Cats are independent, agile domestic animals known for their hunting skills and affectionate nature." **"What information do you have about dogs?"** - Claude will use the `get_dog_info` tool and return: "Dogs are loyal, social companion animals known for their intelligence and strong bond with humans." **"Give me bird information"** - Claude will use the `get_bird_info` tool and return: "Birds are feathered, winged animals capable of flight, known for their diverse songs and nesting behaviors." **"Compare cats, dogs, and birds"** - Claude will use all three tools to gather information and provide a comparison. ## HTTP Server Version For remote deployment, use the HTTP server version: ### Running the HTTP Server ```bash # Install HTTP dependencies source venv/bin/activate pip install -r requirements-http.txt # Start the HTTP server python http_server.py ``` The server will start on `http://localhost:8000` and accept MCP requests via HTTP POST to `/mcp`. ### HTTP Server Configuration For HTTP deployment, use the alternative configuration file `claude_desktop_config_http.json`: ```json { "mcpServers": { "animal-data-http": { "command": "curl", "args": [ "-X", "POST", "http://your-server.com:8000/mcp", "-H", "Content-Type: application/json", "-d", "@-" ] } } } ``` Replace `http://your-server.com:8000` with your actual server URL. ### Deployment Options - **Local HTTP**: Run on `localhost:8000` for local HTTP testing - **Remote Server**: Deploy to cloud services like Heroku, AWS, Google Cloud - **Docker**: Containerize for easy deployment ### Docker Deployment (Optional) Create a `Dockerfile`: ```dockerfile FROM python:3.11-slim WORKDIR /app COPY requirements-http.txt . RUN pip install -r requirements-http.txt COPY http_server.py . EXPOSE 8000 CMD ["python", "http_server.py"] ``` ## Project Structure ``` simple/ ├── server.py # Local MCP server (stdio transport) ├── http_server.py # HTTP MCP server (http transport) ├── requirements.txt # Dependencies for local server ├── requirements-http.txt # Dependencies for HTTP server ├── claude_desktop_config_http.json # HTTP server configuration example ├── venv/ # Virtual environment (created after setup) └── README.md # This documentation ``` ## Dependencies - `fastmcp`: Framework for building MCP servers with Python ## Troubleshooting 1. **Server won't start**: Ensure the virtual environment is activated and dependencies are installed 2. **Claude Desktop can't connect**: Verify the configuration file path and server path are correct 3. **Tools not available**: Restart Claude Desktop after updating the configuration file