# 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