# MCP Employee API Server
A Model Context Protocol (MCP) server that provides tools for managing employee data through a REST API. This server exposes employee management operations as MCP tools that can be used by AI assistants and other MCP clients.
## Features
- **Employee Management**: Full CRUD operations for employee data
- **REST API Integration**: Connects to a local employee API server
- **MCP Protocol**: Exposes functionality through the Model Context Protocol
- **Async Operations**: Built with async/await for optimal performance
- **Error Handling**: Robust error handling for API requests
## Available Tools
The server provides the following MCP tools:
- `get_employees()` - Retrieve all employees
- `get_employee(id)` - Get a specific employee by ID
- `add_employee(name, age)` - Create a new employee
- `update_employee(id, name, age)` - Update an existing employee
- `delete_employee(id)` - Delete an employee by ID
## Prerequisites
- Python 3.13 or higher
- A running employee API server at `http://localhost:8000`
## Installation
1. Clone the repository:
```bash
git clone https://github.com/JoseGarayar/mcp_test.git
cd mcp_test
```
2. Clone the api employee repository:
```bash
git clone https://github.com/JoseGarayar/api_employees.git
```
2. Install dependencies using uv:
```bash
uv sync
```
## Usage
### Running the MCP Server
Start the MCP server using stdio transport:
```bash
uv run python main.py
```
The server will run and listen for MCP protocol messages via stdin/stdout.
### API Configuration
The server is configured to connect to a local API server at `http://localhost:8000`. You can modify the `URL_BASE` constant in `main.py` to point to a different API endpoint.
### Example API Endpoints
The server expects the following API endpoints to be available:
- `GET /employees` - List all employees
- `GET /employees/{id}` - Get employee by ID
- `POST /employees` - Create new employee
- `PUT /employees/{id}` - Update employee
- `DELETE /employees/{id}` - Delete employee
## Development
### Project Structure
```
mcp_test/
├── main.py # Main MCP server implementation
├── pyproject.toml # Project configuration and dependencies
├── README.md # This file
└── uv.lock # Lock file for dependencies
```
### Dependencies
- `httpx` - Async HTTP client for API requests
- `mcp[cli]` - Model Context Protocol implementation
### Development Dependencies
- `ruff` - Python linter and formatter
## Error Handling
The server includes comprehensive error handling:
- Network timeouts (30 seconds)
- HTTP error status codes
- Invalid HTTP methods
- Connection failures
All errors are gracefully handled and return `None` for failed operations.
## License
This project is part of a test implementation for MCP server development.
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/JoseGarayar/mcp_test'
If you have feedback or need assistance with the MCP directory API, please join our Discord server