Rocketlane MCP server for AI agents

Live

API KEY

PROJECT DELIVERY

Project Management

Rocketlane gives your agent project delivery for customer work: create projects from templates, manage phases, tasks, and assignees, log time and time off, and track budgets and invoices.

  • Per-user credentials: each call uses the actual user's API key, never a shared bot.
  • Encrypted per-tenant vault: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: pre-call scope check, 90-day SIEM-exportable audit chain.
Rocketlane
agent · Acme Q3
Run
Which tasks on the Acme Onboarding project are still open in the Data Migration phase?
S
rocketlane_tasks_list
112ms
Project delivery agent
6 tasks in the Data Migration phase of Acme Onboarding are still open. 4 of them are assigned to 2 people on the implementation team.
Sources: 1 project, 6 tasks
rocketlane
6 tasks
18:29
Message Claude...

Tools your project delivery agent reaches for on Rocketlane, scoped per user.

CALL ANY TOOL
70 tools for project delivery in Rocketlane: create and update projects, phases, and tasks, manage assignees, dependencies, and placeholders, log time and time off, and work with budgets, invoices, companies, and spaces.
rocketlane_budget_create
Create budget
Create a financials budget for a Rocketlane project. Returns the new budget with its budgetId. Use rocketlane_budget_create to add a budget. Use rocketlane_budget_update to change an existing one.
Parameters
Name
Type
Required
Description
billing_type
string
Required
Contract type of the budget. Valid values: FIXED_FEE, TIME_AND_MATERIAL, SUBSCRIPTION, NON_BILLABLE. Example: "FIXED_FEE". One of: `FIXED_FEE`, `TIME_AND_MATERIAL`, `SUBSCRIPTION`, `NON_BILLABLE`.
budget_name
string
Required
Name of the budget. Example: "Q1 Implementation".
end_date
string
Required
Budget period end, in YYYY-MM-DD format. Example: "2026-03-31".
project_id
integer
Required
ID of the project the budget belongs to. Get it from rocketlane_projects_list. Example: 201.
start_date
string
Required
Budget period start, in YYYY-MM-DD format. Example: "2026-01-01".
budget_amount
number
Optional
Budget amount in the project's currency. Example: 25000.
budget_hours
number
Optional
Budgeted hours as a decimal with up to two places; the fraction is minutes (1.65 = 1 hour 39 minutes). Example: 120.5.
custom_revenue_recognition_config_id
integer
Optional
ID of the custom revenue recognition configuration. Required when revenue_recognition_type is CUSTOM_REVENUE_RECOGNITION. Example: 41.
fields
array
Optional
Custom field values to set on the budget. Each item pairs a fieldId (from rocketlane_fields_list) with a fieldValue whose type matches the field: text, a number, true/false, a YYYY-MM-DD date, an option value, a user ID, or an array for multi-choice and multi-user fields. Example: [{"fieldId": 12, "fieldValue": "Enterprise"}].
rate_card_id
integer
Optional
ID of the rate card for a TIME_AND_MATERIAL budget. Example: 12.
revenue_recognition_type
string
Optional
Revenue recognition method, such as TRACKED_HOURS_BY_PERIOD_HOURS, MANUAL or MILESTONE_BASED, or CUSTOM_REVENUE_RECOGNITION together with custom_revenue_recognition_config_id. Example: "MANUAL".
status_value
integer
Optional
Numeric value of the budget status option to set. Status values are workspace-specific; read them from an existing budget (status.value) or from the budget status field returned by rocketlane_fields_list. Example: 2.
subscription_contract
object
Optional
Subscription terms for a SUBSCRIPTION budget: subscriptionFrequency (MONTHLY, QUARTERLY, HALF_YEARLY or YEARLY), subscriptionStartDate (YYYY-MM-DD), periodMinutes, periodBudget and noOfPeriods. Example: {"subscriptionFrequency": "MONTHLY", "subscriptionStartDate": "2026-01-01", "periodMinutes": 2400, "periodBudget": 5000, "noOfPeriods": 12}.
rocketlane_budget_delete
Delete budget
rocketlane_budget_get
Get budget
rocketlane_budget_update
Update budget
rocketlane_budgets_list
List budgets
rocketlane_company_note_create
Create company note
rocketlane_field_get
Get field
rocketlane_fields_list
List fields
rocketlane_invoices_list
List invoices
rocketlane_phase_delete
Delete phase
rocketlane_phase_get
Get phase
rocketlane_phase_update
Update phase
rocketlane_project_archive
Archive project
rocketlane_project_members_add
Add project members
rocketlane_project_members_remove
Remove project members
rocketlane_project_placeholders_assign
Assign project placeholders
rocketlane_project_placeholders_list
List project placeholders
rocketlane_project_template_import
Import project template
rocketlane_space_create
Create space
rocketlane_space_delete
Delete space
rocketlane_space_documents_list
List space documents
rocketlane_space_get
Get space
rocketlane_space_update
Update space
rocketlane_task_create
Create task
rocketlane_task_delete
Delete task
rocketlane_task_dependencies_add
Add task dependencies
rocketlane_task_dependencies_remove
Remove task dependencies
rocketlane_tasks_list
List tasks
rocketlane_time_entry_categories_list
List time entry categories
rocketlane_time_entry_get
Get time entry

For more tools, view docs.

Build your Agent
Same auth pattern across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

// Rocketlane tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["rocketlane"], toolNames: [
    "rocketlane_project_create",
    "rocketlane_tasks_list",
    "rocketlane_time_entry_create"] },
  pageSize: 100,
});

const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Create a project for Globex from our onboarding template and list its first tasks" }] });
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["rocketlane"] }, pageSize: 100,
});

const res = await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Create a project for Globex from our onboarding template and list its first tasks" }],
  tools,
});

// Execute the tool call with the user's vaulted Rocketlane API key
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["rocketlane"] }, pageSize: 100,
});

const msg = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Create a project for Globex from our onboarding template and list its first tasks" }],
  tools,
});

// Tool call runs with the user's vaulted Rocketlane API key
await sk.tools.executeTool(msg.content, "user_123");
import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";

const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);

const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["rocketlane"] }, pageSize: 100,
});

const agent = new Agent({
  name: "project_delivery_agent",
  model: "gemini-2.5-pro",
  instruction: "Rocketlane tools scoped to this user",
  tools,
});

await agent.run("Create a project for Globex from our onboarding template and list its first tasks");
Try these prompts
Copy any prompt into your agent. Each maps directly to a Rocketlane tool. Click to copy, paste into your agent, done.
Projects
Copy the prompt
Copied
Create a project for Globex from our standard onboarding template.
Copy the prompt
Copied
List active projects for customer Acme with their owners.
Copy the prompt
Copied
Add jane@acme.com to the Acme Onboarding project as a customer user.
Phases and tasks
Copy the prompt
Copied
List open tasks in the Data Migration phase of Acme Onboarding.
Copy the prompt
Copied
Create a milestone called Go-live in the Launch phase due March 15.
Copy the prompt
Copied
Move this task to the Training phase and add Priya as an assignee.
Time and financials
Copy the prompt
Copied
Log 2 hours on the Kickoff task for today.
Copy the prompt
Copied
List invoices for Acme with their status and amounts.
Copy the prompt
Copied
Show the budget for the Acme Onboarding project.
SEE HOW AUTH WORKS
Each user connects their own Rocketlane API key once, and Scalekit sends it with every call. Keys stay vaulted, every call is scope checked, and every action is logged.
1
Authorize
Your user connects
Rocketlane
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Rocketlane
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Rocketlane
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Rocketlane
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other project management connectors.
GTM and RevOps Teams
Deal room sync
Pulls opportunity context from Salesforce, captures key decisions from Slack, and syncs a running summary to the deal room doc in Google Drive, but only when the deal actually changed.
Support and Ops Teams
Meeting prep
Pulls agenda, participant context, and open action items before every meeting.
Test other agents
See the same per-user auth pattern across other project management connectors.
GTM
Deal room sync agent
Pull opportunity context from Salesforce, capture decisions from Slack, and keep the Google Drive deal room doc current.
OPS
Meeting prep agent
Assemble the agenda, HubSpot attendee history, and open action items from Gmail before every meeting on the calendar.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared Rocketlane API key looks fine in a demo. In production every task update and time entry looks like one service account, and you cannot tell which user triggered it. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared key
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Rocketlane today. Ten connectors tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Rocketlane as the user or through a shared key?
As the user. Each user connects their own Rocketlane API key once, and Scalekit sends it with every call. Audit logs attribute every project, task, and time entry change to that user, not a shared service account.
Where is the Rocketlane API key stored?
In Scalekit's managed AES-256 token vault, namespaced per tenant. To rotate it, the user reconnects with a new API key. Revocation is a single dashboard action. Credentials never appear in prompts, logs, or LLM context.
Can I limit what the agent does in Rocketlane?
Yes. Filter by tool name in listScopedTools to expose only what you want, for example the project, task, and time tools without rocketlane_project_delete, which permanently deletes a project. Scalekit also enforces scope checks before every API call.
What happens when a user revokes Rocketlane access?
The connection is invalidated on the next tool call. Subsequent requests for that user fail closed with a clear error. Other users in the tenant remain unaffected. The event is logged for audit.
What are Rocketlane spaces, and can the agent manage them?
Spaces are the shared, customer-facing pages inside a Rocketlane project. The agent can list, create, and rename spaces, and create documents in them, either a Rocketlane document, optionally from a document template, or an embedded URL.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""rocketlane"": {
""url"": ""https://mcp.scalekit.com/rocketlane"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.rocketlane]
url = ""https://mcp.scalekit.com/rocketlane""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""rocketlane"": {
""url"": ""https://mcp.scalekit.com/rocketlane"",
""type"": ""http""
}
}
}