Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.janet.ai/llms.txt

Use this file to discover all available pages before exploring further.

claude — ~/projects/frontend
look at my tickets in “To Do” and make a plan for how I should prioritize and finish them
janet-ai - list_tickets (MCP)(project_key: “SW”, status: “To Do”, assignees: [“me”])
janet-ai - list_tickets (MCP)(project_key: “SW”, status: “To Do”, assignees: [“me”])
You have 4 tickets in To Do. Here’s how I’d tackle them:
1. SW-84 SSO token refresh — blocking other auth work, fix first
2. SW-71 OAuth callback timeout — related to SSO, do right after
3. SW-63 Session cookie fix — standalone, quick win
4. SW-58 Safari redirect — lowest impact, last
Want me to spawn agents to start working through these?
Give AI agents like Claude Code, Cursor, and Codex full access to your Janet AI workspace. Create & resolve tickets, manage sprints, and more.

Setup

Run this command in your terminal:
claude mcp add janet-ai --transport http https://mcp.janet.ai/mcp
Then run /mcp in Claude Code and complete the OAuth flow to connect your Janet AI Organization.

What You Can Do

Once connected, just talk to your AI agent naturally:
Use caseExample prompt
Find tickets”Show me my assigned tickets in MAIN”
Search”Search for tickets about authentication”
Create tickets”Create a high-priority bug for the login redirect issue”
Schedule tickets”Schedule a ticket for tomorrow at 9am to review the deployment”
Update tickets”Move MAIN-452 to In Progress”
Manage sprints”Add MAIN-100 and MAIN-101 to Sprint 3”
Create objectives”Create an objective called Q2 Launch with high priority”
Manage objectives”Add MAIN-100 and MAIN-101 to the Q2 Launch objective”
Add comments”Add a comment to MAIN-100 saying the fix is deployed”
Attach context”Add this Slack thread / PR / email / doc to MAIN-123 as context”
Break down work”Create child tasks on MAIN-200 for each component”
Sort & organize”Sort the To Do column by priority”
Web search”What are the best libraries for rate limiting in Node.js?”
Write docs”Create a document called API Design with the proposed structure”

Available Tools

The MCP server exposes 42 tools that your AI agent discovers and uses automatically.
get_workspace_context
Get user info, organization, projects, statuses, and members.
get_platform_guidance
Get platform documentation and usage guidance.
list_tickets
List tickets with optional filters (status, priority, assignee, keyword, dates).
get_tickets
Get full ticket details including description, comments, and child tasks for one or more tickets.
create_tickets
Create one or more tickets in a single call (title, description, status, priority, assignees, labels, sprint, due date, scheduled activation).
update_tickets
Batch update ticket fields (status, priority, assignees, labels, due date).
delete_tickets
Soft-delete one or more tickets in a single call. Restorable.
restore_tickets
Restore one or more previously deleted tickets together with their child tasks.
move_ticket
Reposition a ticket: top, bottom, at:N, before/after, within kanban, sprint, or objective. Also supports column-wide sort and reorder.
search_tickets_semantic
Semantic search across tickets by meaning.
add_context_to_tickets
Attach context to one or more tickets in a single call. The type arg picks the source: slack (permalink or manual reporter+message), discord (permalink or manual username+message), email (sender, subject, body), pull_request (URL), web_link (URL), or document (Janet AI doc by UUID or exact title — idempotent).
list_ticket_context
List every context item on a ticket (Slack/Discord/email messages, PRs, web links, linked Janet docs, meetings, Google Docs) with its id + short description. Call this before remove_context_from_ticket.
remove_context_from_ticket
Remove a context item from a ticket by id (id comes from list_ticket_context). Works on any context type.
list_child_tasks
List child tasks for a ticket.
create_child_tasks
Create one or more child tasks on a ticket in a single call.
update_child_tasks
Batch update child task title, status, priority, or assignee.
delete_child_tasks
Delete one or more child tasks in a single call.
list_comments
List comments on a ticket.
add_comments
Add one or more comments to one or more tickets in a single call.
edit_comments
Batch edit existing comments. Edit history is preserved (the original row is deactivated, a new row inserted with the original created_at).
delete_comments
Delete one or more comments in a single call.
list_sprints
List sprints with status, dates, and ticket counts.
create_sprint
Create a new sprint.
update_sprint
Update a sprint’s name, dates, status, or description.
add_sprint_tickets
Add tickets to a sprint.
remove_sprint_tickets
Remove tickets from a sprint.
list_sprint_tickets
List tickets in a sprint grouped by status.
list_objectives
List objectives with status, priority, and ticket counts.
create_objective
Create a new objective.
update_objective
Update an objective’s name, status, priority, or assignees.
delete_objective
Delete an objective.
add_objective_tickets
Add tickets to an objective.
remove_objective_tickets
Remove tickets from an objective.
list_objective_tickets
List tickets in an objective grouped by status.
list_documents
List documents in the workspace.
get_document
Get a document’s full content.
create_document
Create a document with title and markdown content.
update_document
Update a document’s title or content.
Search the web for current information.
post_janetclaw_activity
Post an activity message to the user’s JanetClaw feed for distinct JanetClaw actions (creating a ticket from email, adding context, moving tickets when a PR merges, etc.). Pass ticket_key — click-through URLs resolve automatically.
run_coding_task
Kick off a server-side coding task for a ticket (sandbox repo clone, Claude Code, draft PR). Returns a task id — poll check_coding_task until completed or failed.
check_coding_task
Poll status of a task started with run_coding_task; returns pr_url when completed.

Activity Log

Every MCP tool call is logged and visible in the MCP pageUsage tab in your dashboard. Organization admins see all members’ calls; members see only their own.

Troubleshooting

Cannot connect / authentication errors

If your client fails to connect, try:
  1. Clear existing auth — In your client, remove and re-add the MCP server to trigger a fresh OAuth flow.
  2. Check your organization — During sign-in, make sure you select the correct organization.
  3. Restart your client — Some clients need a full restart after the OAuth flow completes.

FAQ

The MCP server enforces per-user rate limits. If you hit a 429 Too Many Requests error, wait a minute before retrying. Typical limits are 200 requests/minute and 5,000 requests/hour per user.If you consistently hit rate limits, contact support@janet.ai.
mcporter lets you call MCP tools directly as CLI commands — no agent required.First, install it globally:
npm install mcporter
Authenticate once locally:
mcporter auth https://mcp.janet.ai/mcp
Then call any tool directly from the command line:
mcporter call janet-ai.list_tickets --project_key MAIN --status "To Do"
First, install it globally and authenticate on your local machine:
npm install mcporter
mcporter auth https://mcp.janet.ai/mcp
Credentials are stored in ~/.mcporter/credentials.json — copy that file’s contents as a secret or environment variable in your cloud environment so scripts can run without an interactive OAuth flow.For example, a Python script that creates a ticket:
import json
import subprocess

subprocess.run([
    "mcporter", "call", "janet-ai.create_tickets",
    "--tickets", json.dumps([{
        "title": "Nightly health check failed",
        "project_key": "MAIN",
        "priority": "High",
    }]),
])
Some agent runtimes support HTTP-based MCP servers but don’t implement the OAuth PKCE flow required by Janet AI (e.g. OpenClaw). You can proxy through mcp-remote to handle auth transparently.First, install it:
npm install -g mcp-remote
Then trigger the OAuth flow in your terminal:
mcp-remote https://mcp.janet.ai/mcp
Then configure your agent to use it:
{
  "mcpServers": {
    "janet-ai": {
      "command": "mcp-remote",
      "args": ["https://mcp.janet.ai/mcp"]
    }
  }
}
mcp-remote runs locally, performs the PKCE handshake with https://mcp.janet.ai/mcp on your behalf, and exposes the server over stdio to your agent. This works with any client that supports stdio-based MCP servers.