Skip to main content
Glama
README.md
# Craft MCP Server

A lightweight MCP (Model Context Protocol) server providing read access to [craft.io](https://craft.io).

## Installation

```bash
npm install
npm run build
```

## Configuration

Set the following environment variables:

```bash
export CRAFT_API_KEY="your-api-key"
export CRAFT_WORKSPACE_ID="your-workspace-id"
export CRAFT_ACCOUNT_ID="your-account-id"
export CRAFT_PORTAL_ID="your-portal-id"        # optional
```

- **CRAFT_API_KEY**: Your craft.io API key
- **CRAFT_WORKSPACE_ID**: The workspace ID (used for `/workspace/{id}/items` endpoint)
- **CRAFT_ACCOUNT_ID**: The account ID (used for `/workspaces/{id}` endpoint to list workspaces)

## Usage

### With Claude Code

Add to your Claude Code MCP settings (`~/.claude/settings.json`):

```json
{
  "mcpServers": {
    "craft": {
      "command": "node",
      "args": ["/path/to/craft_mcp/dist/index.js"],
      "env": {
        "CRAFT_API_KEY": "your-api-key",
        "CRAFT_WORKSPACE_ID": "your-workspace-id",
        "CRAFT_ACCOUNT_ID": "your-account-id"
      }
    }
  }
}
```

### Standalone

```bash
npm start
```

## Available Tools

| Tool | Description |
|------|-------------|
| `craft_ping` | Test connectivity to craft.io API |
| `craft_get_workspace` | Get workspace details |
| `craft_get_items` | Get items (products, features, etc.) from workspace |
| `craft_get_item` | Get a specific item by ID (e.g., `UPS-1234`) |

## Development

```bash
# Watch mode for development
npm run dev

# Build
npm run build
```

## License

MIT

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity: craft_get_item retrieves a single item by ID, craft_get_items fetches multiple items from the workspace, craft_get_workspace provides workspace details, and craft_ping tests API connectivity. The descriptions clearly differentiate their scopes and use cases.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with the 'craft_' prefix: craft_get_item, craft_get_items, craft_get_workspace, and craft_ping. This uniformity makes the tool set predictable and easy to understand for an agent.

Tool Count5/5

With 4 tools, the server is well-scoped for its purpose of interacting with craft.io. Each tool serves a distinct and necessary function—retrieving items, workspace details, and connectivity testing—without being overly sparse or bloated.

Completeness4/5

The tool set covers core read operations and connectivity testing for the craft.io domain, but lacks write or update capabilities (e.g., create, update, delete items). While agents can perform basic queries, the absence of mutation tools limits full lifecycle management, though this may be intentional for a read-focused server.

Maintenance

ActivityInactive
ResponsivenessNo issues