IDEA Base Documentation

Everything you need to integrate IDEA Base into your development workflow.

Quick Start

Get up and running in under 2 minutes.

1. Create an account

Sign up at app.idea-base.us. Free plan includes 25 AI credits/month and 1 project.

2. Create an API key

Go to Settings > API Keys and click Create API Key. Save the key — it's only shown once.

3. Install the MCP server

Add IDEA Base to your AI coding tool with one config block:

MCP Setup

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "idea-base": {
      "command": "npx",
      "args": ["-y", "@idea-base/mcp-server"],
      "env": {
        "IDEA_BASE_API_KEY": "ib_your_api_key_here"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "idea-base": {
      "command": "npx",
      "args": ["-y", "@idea-base/mcp-server"],
      "env": {
        "IDEA_BASE_API_KEY": "ib_your_api_key_here"
      }
    }
  }
}

Claude Code

Add via the CLI:

claude mcp add idea-base -- npx -y @idea-base/mcp-server \
  --env IDEA_BASE_API_KEY=ib_your_api_key_here

Or add directly to .mcp.json in your project root, using the same format shown for Cursor above.

API Keys

API keys authenticate both the MCP server and direct REST API calls. Keys are prefixed with ib_ and scoped to your account.

PropertyDescription
Prefixib_ followed by 32 characters
PermissionsChoose read, write, or both when creating a key. A read-only key is rejected with a 403 on any POST/PUT/DELETE — scopes are enforced, not just recorded.
ExpiryOptional. Set in days at creation time.
RevocationInstant. Revoked keys stop working immediately.

MCP Tools: Projects

ToolDescriptionRequired Params
list_projectsList all projectsNone
get_projectGet project detailsproject_id
create_projectCreate a projectname
update_projectUpdate projectproject_id

MCP Tools: Tasks

ToolDescriptionRequired Params
list_tasksList tasks for a project. Returns compact rows (id, title, status, priority, estimate, time spent, due date and a 160-character description snippet). Optional: status, verbose (true for full rows)project_id
get_taskGet full task details, including subtasks, blocked_by, the derived effective_status / status_reason, assignees, tags and recent work notes. This is the full-detail call — list_tasks and search_tasks return compact rowstask_id
create_taskCreate a task. Optional: description, acceptance_criteria, estimated_minutes, priority (0–5), start_date, due_date (YYYY-MM-DD), assignee_user_id, parent_task_id (makes it a subtask — one level only, same project)project_id, title
update_taskUpdate task details. Same optional fields as create_task; pass an empty string to clear a date or unassign. blocked_by (array of task ids) replaces the task's dependencies — pass [] to clear them; blocked_reason is the free-text note shown beside a blocked statustask_id
update_task_statusChange status: todo, in_progress, blocked or done. Optional blocked_reason. A task with subtasks or dependencies also has a derived status — see effective_status and status_reason on get_tasktask_id, status
search_tasksSearch across projects, ranked title matches first, then description matches, then recency. Returns compact rows (id, title, status, priority, project / product / customer names, estimate, time logged, due date, snippet). Optional: project_id, product_id, customer_id, status, limit, verbose (true for full rows)query
quick_logCreate + complete + log timeproject_id, title, minutes
add_commentAdd a customer-visible or internal comment to a tasktask_id, comment
add_work_noteAppend an internal work note to a task's activity timelinetask_id, note
set_resume_contextSave a "where I left off" note for the next sessiontask_id, resume_context

MCP Tools: Time Tracking

ToolDescriptionRequired Params
log_timeLog time to a tasktask_id, minutes
start_workingMark as actively workingtask_id
stop_workingStop active worktask_id

MCP Tools: Products

ToolDescriptionRequired Params
list_productsList all productsNone
get_productGet product detailsproduct_id
create_productCreate a productname
link_project_to_productLink project to productproduct_id, project_id

REST API: Authentication

All API requests require a Bearer token in the Authorization header:

curl https://app.idea-base.us/api/projects \
  -H "Authorization: Bearer ib_your_api_key_here"

Base URL: https://app.idea-base.us/api

REST API: Projects

MethodEndpointDescription
GET/api/projectsList all projects
POST/api/projectsCreate project
GET/api/projects/:idGet project details
PUT/api/projects/:idUpdate project
DELETE/api/projects/:idArchive project
GET/api/projects/:id/tasksList project tasks
POST/api/projects/:id/tasksCreate task
POST/api/projects/:id/generate-tasksAI generate tasks from requirements
POST/api/projects/:id/documentsUpload a requirements doc. .docx, .txt, .md, and text-based .pdf are parsed automatically (first 50 pages); an image-only/scanned PDF has no text layer to extract — copy the text in and paste it instead
GET/api/projects/healthHealth scores for all projects
GET/api/projects/standupStandup intelligence (Team+)
GET/api/projects/:id/burndownBurndown and velocity data
GET/api/projects/:id/wrapupWeekly wrap-up summary

REST API: Tasks

MethodEndpointDescription
GET/api/tasks/:idGet task details
PUT/api/tasks/:idUpdate task
DELETE/api/tasks/:idDelete task
PUT/api/tasks/:id/statusUpdate task status
POST/api/tasks/:id/verifyAI verify completion
GET/api/tasks/search?q=keywordSearch tasks

REST API: Time Entries

MethodEndpointDescription
GET/api/tasks/:id/timeList time entries for task
POST/api/tasks/:id/timeLog time entry
DELETE/api/time/:idDelete time entry
GET/api/time/suggestionsPending time suggestions

REST API: Reports

MethodEndpointDescription
GET/api/reports/timeTime reports (group by day/week/month/user/project)
GET/api/reports/executive-summaryAI executive portfolio summary
GET/api/projects/:id/time-summaryProject time summary

GitHub Integration

Connect your GitHub repos to get:

Set up in Settings > GitHub Integration. Add the webhook URL to your GitHub repo settings.

Notification Webhooks

Send events to Slack, Discord, or custom endpoints when things happen:

EventDescription
task_createdNew task added
task_completedTask marked done
task_assignedTask assigned to user
time_loggedTime entry recorded
verification_completedAI verification finished

Configure in Settings > Notifications.