Skip to main content

Projonatics MCP Server

Exposes the Projonatics API to Claude Code (or any MCP client) as read-only tools: projects, tasks, milestones, payment milestones, financial summaries, dashboard and alerts.

It talks to a running Projonatics backend over HTTPS using a personal API token, so it sees exactly what that user sees (role-based scoping applies).

1. Get an API token

In the app: open your profile menu (top right) → Claude Code (MCP)Generate token. The key is shown once.

Or mint one on the server:

# production (docker)
docker compose -f docker-compose.prod.yml exec backend python manage.py drf_create_token you@company.com

# local
cd backend && python manage.py drf_create_token you@company.com

GET /api/me/api-token/ reports whether a token exists; DELETE revokes it; POST again rotates it.

2. Register with Claude Code

Published on PyPI as projonatics-mcp; uvx installs it on first run:

claude mcp add -s user projonatics \
  -e PROJONATICS_URL=https://<your-domain> \
  -e PROJONATICS_TOKEN=<token> \
  -- uvx projonatics-mcp

From a local clone (development): -- uv run --directory /absolute/path/to/projonatics/mcp projonatics-mcp. To pick up a newer release: uv cache clean projonatics-mcp and restart Claude Code.

Check with claude mcp get projonatics. Re-run claude mcp remove projonatics -s user then add to change the URL or token.

Tools

Tool What it returns
whoami User the token belongs to (id, email, role)
list_clients All clients
list_projects(client_id?) Projects visible to the user
get_project(project_id) Full project detail
list_milestones(project_id?) Work milestones
list_tasks(project_id?, status?, assignee_id?, assigned_to_me?, ordering?) Tasks with filters
get_task(task_id) One task
get_project_financials(project_id) Revenue vs cost summary, payment milestones, cost breakdown
list_payment_milestones(project_id?) Invoicing schedule
get_dashboard Metrics, pulse, today's focus, pending payments
get_alerts Overdue tasks, upcoming milestones, overdue payments, budget warnings, ready-to-invoice
list_team_members Team roster
estimate_cost(project_id, num_engineers, num_days) Cost estimate (admin)

Admin-only endpoints (costs, margins, pending payments, estimates) return a 403 for non-admin tokens; the error message says so.

Development

cd mcp
uv sync
uv run pytest

Tests mock the HTTP transport; no backend needed.

Releasing

Bump version in pyproject.toml, commit, then tag and push:

git tag mcp-v0.1.1 && git push origin mcp-v0.1.1

.github/workflows/publish-mcp.yml runs the tests, builds, and publishes to PyPI via trusted publishing.

Download files

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

Source Distribution

projonatics_mcp-0.1.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

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

projonatics_mcp-0.1.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for projonatics_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b4410fbbe667107a0edf06efe569bc2bcda15b5b2b1913087031e9975a72b338
MD5 3c9f9b70cae65af6af452a08faceab90
BLAKE2b-256 749fe8052ba39e06a1f81122dcdb2b28c77c3fd88ac10bffef504c86510436f0

See more details on using hashes here.

Provenance

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

Publisher: publish-mcp.yml on Artiselite/projonatics

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

File details

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

File metadata

File hashes

Hashes for projonatics_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79c9d5bae466f463e11c58dccf67a90ed9d7ec1a94e84ef0c941f10a82379676
MD5 70381fd9eb1fc9df8ffc5946d11ad5e1
BLAKE2b-256 c335f3cb8c034854062cc0f22534b5b2cf507ceb8993d395c26fdc7e46bf9243

See more details on using hashes here.

Provenance

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

Publisher: publish-mcp.yml on Artiselite/projonatics

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page