Skip to main content

Model Context Protocol server for the Deferno task manager backend.

Project description

Deferno MCP Server

An MCP server that exposes the Deferno task-manager backend to AI agents.

MCP is the open standard used by Claude Desktop / Claude Code, Cursor, Windsurf, Zed, VS Code Copilot agents, Continue, OpenAI Agents, and others, so this server works with any of them — you configure it once in your client and every tool and resource below becomes available.

What the agent can do

Tools (function calls)

Tool Purpose
login Authenticate with a username + password
logout Invalidate the stored session token
register Create a new Deferno user
whoami Return the currently authenticated user
list_tasks List every task owned by the authenticated user
get_task Fetch a single task by UUID
create_task Create a new task (optionally nested under a parent)
update_task Patch any mutable field (title, description, status, mood…)
set_task_status Convenience wrapper for open/in-progress/done/…
split_task Decompose a task into two child tasks
fold_task Insert a next-step task into the sibling chain
merge_task Roll a parent's active children back into the parent
get_daily_tasks Today's prioritized tasks with urgency reasons
get_mood_history Mood log for finished tasks

Resources (readable by MCP clients that index resources)

URI Content
deferno://tasks All tasks for the current user
deferno://tasks/today Today's prioritized tasks
deferno://tasks/mood-history Mood log for finished tasks
deferno://task/{task_id} A single task by UUID

Install

The easiest way is uvx — it runs the package in an isolated environment without a manual install step:

uvx deferno-mcp

Or install permanently:

pip install deferno-mcp
# or with uv:
uv pip install deferno-mcp

Configure

Environment variables:

Variable Default Purpose
DEFERNO_BASE_URL http://127.0.0.1:3000 URL of the Deferno backend HTTP API
DEFERNO_TOKEN (unset) Pre-existing bearer token; skips interactive login
DEFERNO_USERNAME (unset) Auto-login on first authed tool call if no token is set
DEFERNO_PASSWORD (unset) Paired with DEFERNO_USERNAME
DEFERNO_LOG_LEVEL WARNING Python logging level

If none of the auth env vars are set, the agent can still call the login tool interactively.

Client configuration snippets

Claude Desktop / Claude Code

Add to your MCP client settings (claude_desktop_config.json on Claude Desktop, or Claude Code's mcpServers config).

Recommended — token auth (no password prompts):

Get your token from the Deferno Settings page → "Copy API token", or from browser dev tools: localStorage.getItem("deferno_token").

{
  "mcpServers": {
    "deferno": {
      "command": "uvx",
      "args": ["deferno-mcp"],
      "env": {
        "DEFERNO_BASE_URL": "https://deferno.work",
        "DEFERNO_TOKEN": "your-api-token-here"
      }
    }
  }
}

Alternative — username/password auth:

{
  "mcpServers": {
    "deferno": {
      "command": "uvx",
      "args": ["deferno-mcp"],
      "env": {
        "DEFERNO_BASE_URL": "https://deferno.work",
        "DEFERNO_USERNAME": "your-user",
        "DEFERNO_PASSWORD": "your-password"
      }
    }
  }
}

Cursor / Windsurf / Zed

Same shape — these clients all consume the MCP stdio transport. Point them at the deferno-mcp command and set the same env vars.

VS Code Copilot agent mode

In .vscode/mcp.json:

{
  "servers": {
    "deferno": {
      "command": "deferno-mcp",
      "env": { "DEFERNO_BASE_URL": "http://127.0.0.1:3000" }
    }
  }
}

Running the backend

The server talks to the Rust backend over HTTP. Start it first:

cd backend
cargo run

It listens on :3000 and connects to Redis via REDIS_URL (default redis://127.0.0.1:6379/).

Development

Syntax / import sanity check:

python -c "from deferno_mcp.server import create_server; create_server()"

The server implementation is a single module (src/deferno_mcp/server.py) plus a thin async HTTP client (src/deferno_mcp/client.py). Adding a new tool is a matter of wrapping a new client method in an @mcp.tool().

Project details


Download files

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

Source Distribution

defernowork_mcp-0.1.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

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

defernowork_mcp-0.1.0-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: defernowork_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for defernowork_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a48cbebeb36760e9d5fdce15c2377b379c693028e6196f3e28519a067cd31ef0
MD5 7eac751b250b031e19d850319a4ea59b
BLAKE2b-256 792c8de422df063e3b31e0cc2fc2190d13270c17a840ef9e6fe864e71026bf4e

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Kyle-Falconer/defernowork-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 defernowork_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for defernowork_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c76fd4066b1721be28a1fff0779b3b2ecd9c3751354e4e6201aa6e05eb1dd922
MD5 a3593f0cef6514cf4f7971629015be6d
BLAKE2b-256 8591ecaec761f83209fe43bc6fe63c62e0ec91edec254c08cf2111e95f77c859

See more details on using hashes here.

Provenance

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

Publisher: release.yml on Kyle-Falconer/defernowork-mcp

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

Supported by

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