{
  "transport": "streamable_http",
  "url": "https://tasks.gnexus.space/mcp/",
  "user_key": { "header": "Authorization", "prefix": "Bearer " },
  "headers": {
    "Authorization": "Bearer gnt_0zEyloBvV-OAd-q1T4oEgnXc4MGYxI9hw-DlEMGExww"
  },
  "groups": {
    "read": [
      "list_projects",
      "get_project",
      "list_tasks",
      "get_task",
      "list_tags"
    ],
    "write": [
      "create_task",
      "update_task",
      "complete_task",
      "create_project",
      "update_project",
      "archive_project",
      "restore_project"
    ]
  },
  "instructions": "MCP tools for gntodo — GNexus Tasks (https://tasks.gnexus.space), personal task manager.\n\nWorkflow:\n1. Start with list_projects() — pick the right project and pass its project_id/project_name to create_task/update_task. A task without a project gets lost.\n2. get_project(project_id=...) returns the project note + open tasks — use it to restore context after a break.\n3. Take ids ONLY from tool responses (tasks, projects, tags) — never invent them.\n4. Close a task with update_task(task_id, status=\"done\") or complete_task(task_id, actual_minutes=N). Rewards (XP, coins, garden) are automatic; recurring tasks spawn their next instance automatically (spawned_next_id) — do not create it manually.\n5. Search: list_tasks(query=\"substring\", project_id=..., status=...) searches title and description; get_task(task_id) gives full data.\n6. Project management: create_project(name, note, priority) — new project container; update_project — rename, note, relevance_status (active|paused), priority; archive_project — move to archive with all tasks (NOT deletion, history preserved); restore_project — bring back. Use list_projects(include_archived=True) to find archived projects. Project names are unique — check list_projects() before creating.\n"
}