cursor-api-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CURSOR_API_KEY | Yes | Your Cursor API key (crsr_...) | |
| CURSOR_API_READ_ONLY | No | Set to 'true' to run in read-only mode (no write tools) | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_api_key_infoA | Return metadata for the configured Cursor API key (GET /v1/me). |
| list_modelsA | List models available for Cloud Agents (GET /v1/models). |
| list_repositoriesA | List GitHub repos accessible via Cursor's GitHub App (GET /v1/repositories). Strict rate limits: about 1 request/user/minute and 30/user/hour. Can be slow. |
| list_agentsA | List Cloud Agents for the authenticated user (GET /v1/agents). Args: limit: Page size (1-100, default 20). cursor: Pagination cursor from a previous nextCursor. pr_url: Optional GitHub pull request URL filter. include_archived: Include archived agents (default True). |
| get_agentA | Get durable metadata for one Cloud Agent (GET /v1/agents/{id}). Args: agent_id: Agent id (for example bc-...). |
| list_agent_runsA | List runs for a Cloud Agent, newest first (GET /v1/agents/{id}/runs). Args: agent_id: Agent id (for example bc-...). limit: Page size (1-100, default 20). cursor: Pagination cursor from a previous nextCursor. |
| get_agent_runA | Get one Cloud Agent run (GET /v1/agents/{id}/runs/{runId}). Args: agent_id: Agent id (for example bc-...). run_id: Run id (for example run-...). |
| stream_agent_runA | Fetch SSE events for a run (GET .../runs/{runId}/stream). Collects the stream body until the server closes or the timeout elapses. Prefer polling get_agent_run for long-lived watches. Args: agent_id: Agent id (for example bc-...). run_id: Run id (for example run-...). timeout_seconds: HTTP timeout for the stream request (default 60). |
| get_agent_usageA | Get token usage for an agent, optionally scoped to one run (GET .../usage). Args: agent_id: Agent id (for example bc-...). run_id: Optional run id to scope usage. |
| list_agent_artifactsA | List artifacts produced by a Cloud Agent (GET /v1/agents/{id}/artifacts). Args: agent_id: Agent id (for example bc-...). |
| download_agent_artifactB | Get a 15-minute presigned URL for an artifact (GET .../artifacts/download). Args: agent_id: Agent id (for example bc-...). path: Relative artifact path from list_agent_artifacts (for example artifacts/screenshot.png). |
| list_team_membersA | List team members (GET /teams/members). Requires a Team Admin API key. |
| get_audit_logsA | Fetch team audit log events (GET /teams/audit-logs). Args: start_time: Start bound (e.g. 7d, ISO8601, YYYY-MM-DD). Default ~7 days ago. end_time: End bound (e.g. now). Default now. event_types: Comma-separated event types (login, add_user, ...). search: Free-text search filter. users: Comma-separated emails or encoded user ids. page: 1-indexed page (default 1). page_size: Results per page, 1-500 (default 100). |
| get_daily_usage_dataA | Fetch daily team usage metrics (POST /teams/daily-usage-data; query only). Date range cannot exceed 30 days. Without page/page_size, only active users are returned; with both, all members in range are returned. Args: start_date_ms: Range start as epoch milliseconds. end_date_ms: Range end as epoch milliseconds. page: Optional 1-indexed page for all-members mode. page_size: Optional page size for all-members mode. |
| get_spending_dataA | Fetch current-cycle team spend (POST /teams/spend; query only). Args: search_term: Filter by name/email. sort_by: One of amount, date, user (default date). sort_direction: asc or desc (default desc). page: 1-indexed page (default 1). page_size: Optional page size. |
| get_usage_eventsB | Fetch filtered usage events (POST /teams/filtered-usage-events; query only). Args: start_date_ms: Optional range start as epoch milliseconds. end_date_ms: Optional range end as epoch milliseconds. users: Optional comma-separated emails or user ids. page: 1-indexed page (default 1). page_size: Page size (default 100). |
| list_team_repo_blocklistsB | List team repository blocklists (GET /settings/repo-blocklists/repos). |
| list_billing_groupsA | List billing groups for the team (GET /teams/groups). Args: billing_cycle: Optional ISO date (YYYY-MM-DD) for the cycle; default current. |
| get_billing_groupA | Get one billing group (GET /teams/groups/{groupId}). Args: group_id: Billing group id. billing_cycle: Optional ISO date (YYYY-MM-DD) for the cycle; default current. |
| list_organization_membersA | List organization members (GET /organizations/members). Works with an Organization API key scoped to members:read (or broader). Args: page: 1-indexed page (default 1). page_size: Members per page, capped at 200 (default 50). |
| list_private_workersA | List self-hosted pool workers (GET /v0/private-workers). Requires the pool's service account API key. Args: status: One of all, in_use, idle (default all). limit: Page size 1-100 (default 50). next_page_token: Pagination cursor from a previous response. |
| get_fleet_summaryA | Get connected/in-use worker counts (GET /v0/private-workers/summary). |
| get_private_workerA | Get one private worker (GET /v0/private-workers/{id}). Args: worker_id: Worker id (for example pw_...). |
| list_pending_pool_requestsA | List unassigned pool requests (GET /v0/private-workers/pending-requests). Args: limit: Page size 1-100 (default 50). page_token: Pagination cursor. repository: Optional repo URL filter (required for repo-scoped keys). |
| get_organization_pooled_usageA | Get org pooled usage (POST /organizations/pooled-usage; query only). Requires Organization API key with usage:* (or admin:*). Args: organization_id: Public org id (org_...). |
| get_organization_usage_eventsA | Get org-wide usage events (POST /organizations/filtered-usage-events). Args: organization_id: Public org id (org_...). start_date_ms: Optional range start as epoch milliseconds. end_date_ms: Optional range end as epoch milliseconds. team_ids_json: Optional JSON array of team ids to include. page: 1-indexed page (default 1). page_size: Page size (default 100). |
| get_organization_daily_usage_dataC | Get org daily usage (POST /organizations/daily-usage-data). Args: organization_id: Public org id (org_...). start_date_ms: Range start as epoch milliseconds. end_date_ms: Range end as epoch milliseconds. team_ids_json: Optional JSON array of team ids. page: Optional page (use with page_size). page_size: Optional page size (use with page). |
| get_organization_spending_dataA | Get org spend (POST /organizations/spend). Args: organization_id: Public org id (org_...). search_term: Optional name/email filter. page: 1-indexed page (default 1). page_size: Optional page size. |
| list_organization_groupsA | List organization groups (GET /organizations/groups). Args: page: 1-indexed page (default 1). page_size: Groups per page (default 50). |
| get_organization_groupB | Get one organization group (GET /organizations/groups/{groupId}). Args: group_id: Organization group id (g_...). |
| list_organization_group_membersA | List members of an organization group (GET .../groups/{id}/members). Args: group_id: Organization group id (g_...). page: 1-indexed page (default 1). page_size: Members per page (default 50). |
| get_team_analyticsA | Fetch a team analytics metric (GET /analytics/team/{metric}). Allowed metrics: agent-edits, tabs, dau, client-versions, models, top-file-extensions, mcp, commands, plans, skills, ask-mode, conversation-insights, leaderboard, bugbot, bugbot-reviews. Args: metric: Allowlisted metric slug (see docstring list). start_date: Optional start (ISO, YYYY-MM-DD, 7d, today, ...). end_date: Optional end date bound. users: Optional comma-separated emails or user ids. page: Optional page (leaderboard / bugbot* pagination). page_size: Optional page size. include: Required for conversation-insights (comma-separated slices: intents,complexity,categories,guidanceLevels,workTypes). repo: Optional repo filter for bugbot / bugbot-reviews (host/owner/repo). pr_number: Optional PR number filter for bugbot-reviews. dry_run: Optional filter for bugbot-reviews (true=dry-run only). |
| get_analytics_by_userA | Fetch a by-user analytics metric (GET /analytics/by-user/{metric}). Allowed metrics: agent-edits, tabs, models, top-file-extensions, client-versions, mcp, commands, plans, skills, ask-mode. Args: metric: Allowlisted metric slug. start_date: Optional start date bound. end_date: Optional end date bound. users: Optional comma-separated emails or user ids. page: Page number (default 1). page_size: Users per page (default 100, max 500 server-side). |
| list_ai_code_commitsA | List AI commit metrics (GET /analytics/ai-code/commits). Args: start_date: Optional start (ISO, now, 7d). Default ~7 days ago. end_date: Optional end (ISO, now, 0d). Default now. user: Optional single-user filter (email, user_..., or numeric id). page: 1-based page (default 1). page_size: Results per page (default 100, max 1000). |
| download_ai_code_commits_csvA | Download AI commit metrics CSV (GET /analytics/ai-code/commits.csv). Returns the CSV body as text under Args: start_date: Optional start date bound. end_date: Optional end date bound. user: Optional single-user filter. |
| list_ai_code_changesA | List accepted AI change metrics (GET /analytics/ai-code/changes). Args: start_date: Optional start date bound. end_date: Optional end date bound. user: Optional single-user filter. page: 1-based page (default 1). page_size: Results per page (default 100, max 1000). |
| download_ai_code_changes_csvC | Download AI change metrics CSV (GET /analytics/ai-code/changes.csv). Returns the CSV body as text under Args: start_date: Optional start date bound. end_date: Optional end date bound. user: Optional single-user filter. |
| get_ai_code_commit_detailsA | Get commit detail / blame (GET /analytics/ai-code/commits/{hash}). Limited alpha. Args: commit_hash: Commit hash or comma-separated hashes. branch: Optional branch name filter. |
| list_bugbot_reposA | List repos with Bugbot settings (GET /bugbot/repos). |
| create_agentA | Create a Cloud Agent and enqueue its initial run (POST /v1/agents). Args: prompt_text: Required instruction text for the agent. name: Optional display name (max 100 chars). repo_url: Optional GitHub repository URL. starting_ref: Optional branch or SHA starting point. pr_url: Optional PR URL (repo_url still required when set). model_id: Optional model id from list_models. auto_create_pr: Whether to open a PR when the run completes. work_on_current_branch: Push to starting ref instead of a new branch. mode: Initial mode: agent or plan. agent_id: Optional client-supplied id (bc-...) for idempotent create. prompt_images_json: Optional JSON array of prompt images ({data,mimeType} or {url}). mcp_servers_json: Optional JSON array (string or list) of inline MCP servers. extra_json: Optional JSON object (string or object) merged into the request body for advanced fields. Cannot overwrite keys already set by typed args (for model.params, omit model_id and pass full model). |
| create_agent_runB | Send a follow-up prompt to an active agent (POST /v1/agents/{id}/runs). Args: agent_id: Agent id (for example bc-...). prompt_text: Follow-up instruction text. mode: Optional mode override: agent or plan. prompt_images_json: Optional JSON array of prompt images. mcp_servers_json: Optional JSON array of MCP servers for this run. extra_json: Optional JSON object merged into the body. Cannot overwrite prompt, mcpServers, or mode when those were set by typed args. |
| cancel_agent_runB | Cancel an active agent run (POST .../runs/{runId}/cancel). Args: agent_id: Agent id (for example bc-...). run_id: Run id (for example run-...). |
| archive_agentA | Archive an agent so it cannot accept new runs (POST .../archive). Args: agent_id: Agent id (for example bc-...). |
| unarchive_agentA | Unarchive an agent so it can accept new runs (POST .../unarchive). Args: agent_id: Agent id (for example bc-...). |
| delete_agentA | Permanently delete an agent (DELETE /v1/agents/{id}). Irreversible. Args: agent_id: Agent id (for example bc-...). |
| create_worker_tokenA | Mint a one-hour user-scoped worker token (POST /v1/sub-tokens). Requires a service-account API key. Provide exactly one of email or user id. The accessToken value is redacted in the tool result. Args: for_user_email: Active team member email. for_user_id: Active team member numeric user id. |
| set_user_spend_limitA | Set or clear a user's spend limit (POST /teams/user-spend-limit). Args: user_email: Team member email. spend_limit_dollars: Integer dollar limit, or null to clear. |
| remove_team_memberB | Remove a member from the team (POST /teams/remove-member). Provide exactly one of user_id or email. Args: user_id: Encoded user id (user_...). email: Team member email. |
| upsert_repo_blocklistsC | Upsert repository blocklist patterns (POST .../repos/upsert). Args: repos_json: JSON array of {url, patterns[]} objects. |
| delete_repo_blocklistB | Delete one repository blocklist entry (DELETE .../repos/{repoId}). Args: repo_id: Blocklist repo id. |
| create_billing_groupB | Create a billing group (POST /teams/groups). Args: name: Group name. group_type: Group type (currently only BILLING). |
| update_billing_groupA | Update a billing group name or directory attachment (PATCH /teams/groups/{id}). Only one field can be updated per request per API rules. Args: group_id: Billing group id. name: New group name. directory_group_id: Directory group id to attach. clear_directory_group: When True, detach directory sync (sends null). |
| delete_billing_groupC | Delete a billing group (DELETE /teams/groups/{id}). Destructive. Args: group_id: Billing group id. |
| add_billing_group_membersA | Add members to a billing group (POST /teams/groups/{id}/members). Args: group_id: Billing group id. user_ids_json: JSON array of encoded user ids. |
| remove_billing_group_membersC | Remove members from a billing group (DELETE /teams/groups/{id}/members). Args: group_id: Billing group id. user_ids_json: JSON array of encoded user ids. |
| sync_organization_team_membershipsA | Sync org users onto linked teams (POST /organizations/team-memberships/sync). Requires Organization API key with members:* (or admin:*). Args: organization_id: Public org id (org_...). users_json: JSON array of {userId, teamIds[]} or {userId, destinationTeamId} entries. |
| add_organization_group_membersA | Add members to an org group (POST .../members/bulk-add). Args: group_id: Organization group id (g_...). user_ids_json: JSON array of user ids (max 100 per request). |
| remove_organization_group_membersA | Remove members from an org group (POST .../members/bulk-remove). Args: group_id: Organization group id (g_...). user_ids_json: JSON array of user ids (max 100 per request). |
| trigger_bugbot_reviewA | Queue a Bugbot review (POST /bugbot/review). Args: pr_url: Full GitHub PR or GitLab MR URL. dry_run: When True, analyze without posting to SCM (still billed). |
| update_bugbot_repoA | Enable/disable Bugbot for a repo (POST /bugbot/repo/update). Args: repo_url: Full repository URL. enabled: True to enable Bugbot, False to disable. manual_trigger_only: When True, skip automatic PR reviews. |
| update_bugbot_user_accessA | Update Bugbot allow/block list membership (POST /bugbot/user/update). Team settings must already use allowlist or blocklist mode. Args: username: GitHub/GitLab/Bitbucket username (case-insensitive). allow: Grant (True) or revoke (False) access per active list mode. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PhillipChaffee/cursor-api-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server