Skip to main content
Glama
mayankkedia19

IT Asset Tracker MCP Server

README.md
# IT Asset Tracker MCP Server

An MCP (Model Context Protocol) server that connects Claude Desktop to the IT Asset Tracker backend, giving Claude access to 70+ tools for managing assets, users, requests, and reports.

## What it does

Lets you talk to your IT management system in plain English through Claude Desktop. For example:
- "Show me all pending electronics requests"
- "List all assets assigned to a user"
- "Give me a summary report of all assets"
- "Approve the laptop request from John"

## Project structure

```
itassettracker/
├── server.py           # MCP server entry point
├── openapi_tools.py    # Auto-generates tools from the backend's OpenAPI schema
├── requirements.txt    # Python dependencies
├── .env                # Your credentials (not committed)
└── .env.template       # Template showing what goes in .env
```

## Setup

### 1. Prerequisites
- Python 3.10 or higher
- Claude Desktop installed

### 2. Install dependencies

```bash
pip install -r requirements.txt
```

### 3. Configure credentials

Copy `.env.template` to `.env` and fill in your details:

```bash
cp .env.template .env
```

Edit `.env`:
```
BACKEND_BASE_URL=https://qk1ytdyqxb.execute-api.us-east-1.amazonaws.com
BACKEND_EMAIL=your_email@company.com
BACKEND_PASSWORD=your_password
```

Or if you prefer to use a bearer token directly:
```
BACKEND_BASE_URL=https://qk1ytdyqxb.execute-api.us-east-1.amazonaws.com
BACKEND_ACCESS_TOKEN=your_jwt_token_here
```

### 4. Test the server

```bash
python server.py
```

You should see:
```
BASE_URL = https://qk1ytdyqxb.execute-api.us-east-1.amazonaws.com
TOKEN EXISTS = True
INFO: Loaded 70 tools from .../openapi.json
```

### 5. Connect to Claude Desktop

Add this to your Claude Desktop config file:

**Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`  
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "it-asset-tracker": {
      "command": "python",
      "args": ["/full/path/to/server.py"],
      "env": {
        "BACKEND_BASE_URL": "https://qk1ytdyqxb.execute-api.us-east-1.amazonaws.com",
        "BACKEND_ACCESS_TOKEN": ""
      }
    }
  }
}
```

Quit and relaunch Claude Desktop. You should see a 🔨 hammer icon in the chat input.

## Authentication

The server supports three auth methods (in order of priority):

1. **Bearer token in `.env`** — set `BACKEND_ACCESS_TOKEN`
2. **Email + password in `.env`** — set `BACKEND_EMAIL` and `BACKEND_PASSWORD`, server auto-logs in on startup
3. **Set token at runtime** — tell Claude: *"Set auth token to eyJhbGci..."*

Tokens expire after ~24 hours. Using email + password in `.env` is recommended so login happens automatically.

## How it works

On startup, the server fetches the backend's OpenAPI schema and automatically generates an MCP tool for every API endpoint. No manual tool definitions needed — adding a new endpoint to the backend automatically makes it available to Claude.