Skip to main content

accelo-mcp

An unofficial Model Context Protocol server for the Accelo CRM platform. It exposes Accelo data and operations to MCP-compatible AI assistants through the documented Accelo REST API.

This project is not affiliated with or endorsed by Accelo. Users are responsible for their Accelo account, OAuth application, permissions, and data handling.

Installation

With uvx

The recommended installation for MCP hosts is:

{
  "mcpServers": {
    "accelo": {
      "command": "uvx",
      "args": ["accelo-mcp"],
      "env": {
        "ACCELO_DEPLOYMENT": "your-deployment",
        "ACCELO_CLIENT_ID": "your-client-id",
        "ACCELO_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

To pin a release:

"args": ["accelo-mcp==0.1.0"]

uvx installs the package into an isolated environment and runs the accelo-mcp command.

With pip

python3 -m pip install accelo-mcp
accelo-mcp

From source

git clone <repository-url>
cd accelo-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Configuration

Copy .env.example to .env, or provide these variables through the MCP host:

Variable Required Default Description
ACCELO_DEPLOYMENT Yes Deployment prefix, such as example for example.accelo.com
ACCELO_CLIENT_ID Yes OAuth2 client ID from an Accelo application
ACCELO_CLIENT_SECRET Depends on auth type OAuth2 client secret; not required for public PKCE applications
ACCELO_AUTH_TYPE No web web, service, installed, or public
ACCELO_SCOPE No read(all) OAuth2 scope; defaults to read-only. Add write access explicitly, e.g. read(all),write(all), only if you need the write tools
ACCELO_REDIRECT_URI For web and public http://localhost:9876/callback (web only) Local OAuth callback URL. Optional for web (defaults as shown); required for public with no default. Must exactly match the redirect URI registered on the Accelo application.
ACCELO_MCP_PORT No 3000 Port used by the SSE transport

Create or obtain an OAuth application for the Accelo deployment you intend to access. Never commit client secrets, refresh tokens, access tokens, cookies, or webhook secrets.

Authentication types

All four authentication types use OAuth 2.0. They differ in whether a person authorises interactively in a browser and whether a client secret is required.

Auth type OAuth 2.0 grant Interactive browser login Client secret Typical use
web Authorisation Code + refresh token Yes, once Required Individual users; the recommended default
public Authorisation Code with PKCE + refresh token Yes, once Not required Publicly distributed clients that cannot keep a secret
installed Authorisation Code via PIN + refresh token Yes (approve, then enter a PIN) Required Installed clients using Accelo's PIN approval
service Client Credentials No Required Server-to-server automation under a shared service identity

Key points:

  • public still requires OAuth. "Public" means no client secret is distributed, not that authentication is skipped. On first run the server opens your browser, you log in to Accelo and authorise, Accelo redirects back to a local 127.0.0.1 callback listener, and the server exchanges the authorisation code (using a PKCE code_verifier) for tokens. No client secret is ever sent.
  • service is the only non-interactive flow. It authenticates as a service identity via the Client Credentials grant and never opens a browser. Every other type requires a one-time interactive authorisation.
  • After the first authorisation, web, public, and installed cache a refresh token and reauthorise silently, so the browser step is not repeated on later runs.
  • The redirect URI must line up in three places for web and public: the ACCELO_REDIRECT_URI you set, the port the local callback listener binds (derived from that URI, or 8080 if the URI has no explicit port), and the redirect URI registered on the Accelo application. Accelo rejects the authorisation request if its registered value does not match. For public, ACCELO_REDIRECT_URI is mandatory and has no default.

Tokens are cached locally at ~/.accelo-mcp/tokens.json with restrictive file permissions. The local callback listener binds to 127.0.0.1 only.

Usage

The default transport is stdio, which is suitable for Claude Desktop, Kiro, and other local MCP hosts:

accelo-mcp

The server also supports SSE transport:

accelo-mcp --sse

The server provides 219 tools covering companies, contacts, affiliations, activities, projects, tickets, tasks, retainers, sales, billing, time tracking, custom fields, resources, workflow progressions, and related Accelo objects.

For complex queries, call accelo_get_context first. It describes the Accelo object model, relationships, filtering conventions, pagination, and field selection syntax.

Filtering and field selection

All list tools accept structured filters:

{"standing": "active"}
{"date_created_after": 1690000000}
{"status": [1, 2, 3]}
{"order_by_desc": "date_modified"}

Request linked or optional fields with fields:

website,phone
postal_address(city,state)
_ALL

Development

make install  # install the package and development dependencies
make test     # run tests
make lint     # run Ruff checks
make audit    # audit Python dependencies for known vulnerabilities
make check    # run lint, tests, and dependency audit
make build    # build a wheel and source distribution

Security

Please report suspected vulnerabilities privately. See SECURITY.md for the reporting process. Do not include credentials, customer data, or access tokens in an issue.

License

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

accelo_mcp-0.1.0.tar.gz (64.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

accelo_mcp-0.1.0-py3-none-any.whl (82.2 kB view details)

Uploaded Python 3

File details

Details for the file accelo_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: accelo_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 64.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for accelo_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 94d828cc7ae5ae45aab7ab220a4a648fe522864e32eb5418b25f42d8e2da818f
MD5 91e487307580b1823764d6a2df165d9e
BLAKE2b-256 de18b8e98e166478e541def68381b42d422d55bbe1d4ecd2057d6a7dbc230158

See more details on using hashes here.

Provenance

The following attestation bundles were made for accelo_mcp-0.1.0.tar.gz:

Publisher: publish.yml on Selerity/accelo-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file accelo_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: accelo_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 82.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for accelo_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 781f8f6bbc40a33512eb4f8a83177d54c25051eb105e885ac61ab0f5fccda774
MD5 0c86195debd5df1aa8c9b95892f80772
BLAKE2b-256 402e09c6e214b093a6767d2ae252bf2b974ea16c7d9950a009bd385ea66f918a

See more details on using hashes here.

Provenance

The following attestation bundles were made for accelo_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Selerity/accelo-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page