Skip to main content
Glama
huitmj

Simple Animal Data MCP Server

by huitmj
README.md
# 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