Skip to main content
Glama
gasconc

Pylon MCP Server

by gasconc
README.md
# Pylon MCP Server

MCP (Model Context Protocol) server for integrating with the Pylon API. This server provides tools for managing accounts, issues, messages, and custom fields in Pylon.

## Features

- **Accounts**: List, get, create, and update accounts
- **Issues**: List, get, create, update, and search support issues with advanced filters
- **Messages**: Get issue messages and redact messages
- **Custom Fields**: List, get, create, and update custom fields

## Prerequisites

- Node.js 18 or higher
- A Pylon account with API access
- Pylon API token

## Installation

1. Clone or navigate to the project directory:

```bash
cd pylon-mcp-server
```

2. Install dependencies:

```bash
npm install
```

3. Set up your environment variables:

```bash
cp env.example .env
```

4. Edit `.env` and add your Pylon API token:

```
PYLON_API_TOKEN=your_pylon_api_token_here
```

## Configuration in Cursor

Add the following to your Cursor MCP settings file (`~/.cursor/mcp.json` or the project's `.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "pylon": {
      "command": "node",
      "args": ["/path/to/pylon-mcp-server/src/index.js"],
      "env": {
        "PYLON_API_TOKEN": "your_pylon_api_token_here"
      }
    }
  }
}
```

Replace `/path/to/pylon-mcp-server` with the actual path to this project.

## Available Tools

### Accounts

| Tool | Description |
|------|-------------|
| `pylon_list_accounts` | List all accounts with optional pagination |
| `pylon_get_account` | Get a specific account by ID |
| `pylon_create_account` | Create a new account |
| `pylon_update_account` | Update an existing account |

### Issues

| Tool | Description |
|------|-------------|
| `pylon_list_issues` | List issues within a time range |
| `pylon_get_issue` | Get a specific issue by ID |
| `pylon_create_issue` | Create a new issue |
| `pylon_update_issue` | Update an existing issue |
| `pylon_search_issues` | Search issues with advanced filters (state, priority, assignee, tags, etc.) |

### Messages

| Tool | Description |
|------|-------------|
| `pylon_get_issue_messages` | Get all messages for a specific issue |
| `pylon_redact_message` | Redact a specific message in an issue |

### Custom Fields

| Tool | Description |
|------|-------------|
| `pylon_list_custom_fields` | List custom fields by object type (account, issue, contact) |
| `pylon_get_custom_field` | Get a specific custom field by ID |
| `pylon_create_custom_field` | Create a new custom field |
| `pylon_update_custom_field` | Update an existing custom field |

## Usage Examples

### List accounts

```
List all accounts in Pylon
```

### Get issues from last week

```
List all issues from the last 7 days
```

### Create a new account

```
Create a new account named "Acme Corp" with domain "acme.com"
```

### Search for open high-priority issues

```
Search for all open issues with high or urgent priority
```

The `pylon_search_issues` tool supports complex filters with AND/OR operators:

```json
{
  "filter": {
    "operator": "and",
    "subfilters": [
      { "field": "state", "operator": "equals", "value": "open" },
      { "field": "priority", "operator": "in", "values": ["high", "urgent"] }
    ]
  },
  "limit": 50
}
```

Available filter fields: `state`, `priority`, `assignee.id`, `account.id`, `tags`, `requester.email`, `source`, `team.id`

### Create a custom field

```
Create a select custom field called "Priority Level" for issues with options: Low, Medium, High
```

## API Reference

For more information about the Pylon API, see:

- [Accounts API](https://docs.usepylon.com/pylon-docs/developer/api/api-reference/accounts)
- [Issues API](https://docs.usepylon.com/pylon-docs/developer/api/api-reference/issues)
- [Messages API](https://docs.usepylon.com/pylon-docs/developer/api/api-reference/messages)
- [Custom Fields API](https://docs.usepylon.com/pylon-docs/developer/api/api-reference/custom-fields)

## Development

Run in development mode with auto-reload:

```bash
npm run dev
```

## License

MIT

TDQS

B3.2/5.0

Scored across 36 tools

Disambiguation5/5

Each tool targets a distinct resource-action combination (e.g., account, issue, article). Overlapping concepts like list_issues vs search_issues are clearly differentiated by scope (time range vs complex filters). No two tools appear to do the same thing.

Naming Consistency5/5

All tools follow a consistent 'pylon_verb_noun' pattern with snake_case verbs (list, get, create, update, delete, search). The naming is predictable and uniform across all resources.

Tool Count2/5

At 36 tools, the set is substantially larger than typical MCP servers. While it covers multiple resource types, many resources (projects, tasks, milestones) lack corresponding list/get tools, making the count feel inflated rather than comprehensive.

Completeness2/5

Major gaps exist: projects, tasks, and milestones have create/update/delete but no list/get operations, leaving no way to retrieve them. Custom fields lack delete, and collections lack update/delete. These are critical CRUD omissions.

Maintenance

ActivityInactive
ResponsivenessNo issues