keen
Your Atlassian work, within reach.
A delivery system should be easier to operate than the work it tracks. We built keen to put Atlassian Cloud within reach of people, scripts and AI agents through one shared set of commands.
Explore keen- 1,843REST API endpoints
Across Jira, Confluence, Agile, Marketplace, Service Desk, Assets, Compass, Bitbucket and Admin.
- 2Tools exposed to an AI agent
Search for the right operation, then run it.
- 18Teamwork Graph queries
Documented alongside REST coverage.
- 5 minutesRepeat-read cache window
Successful writes clear the response cache.
- AskDescribe the Atlassian task in plain language.
- Findkeen_search returns matching operations and their parameters.
- Runkeen_run uses the shared command set.
- ReadReturn a structured result from the service or an eligible cache.
A real keen search
$ keen_search "move an issue to done"
issue_transitions_do
Performs an issue transition
issue_transitions_get
Returns the transitions for an issueThe problem
Automating an ordinary delivery task can mean finding an endpoint, rebuilding a request body, looking up an identifier and trimming a large response before the useful work begins. Repeat that across issues, sprints, documentation and administration, and every automation grows its own fragile collection of requests.
AI agents add a second constraint. Exposing thousands of operations at once can consume the space they need to reason about the task. Asking an agent to search live work repeatedly also creates unnecessary requests. The problem was both coverage and access: a broad toolset that stays practical to use.
Who it’s for
Delivery teams, platform engineers and product teams connecting Jira and Confluence to automation or AI agents.
What we built
We built a free, open-source command line tool and MCP server covering 1,843 Atlassian REST API endpoints. The same command set reaches Jira, Confluence, Agile, Marketplace, Service Desk, Assets, Compass, Bitbucket and Admin. Eighteen Teamwork Graph queries extend that reach to relationships across work and teams.
People get discoverable commands and readable output. Automation gets structured responses, non-interactive operation, field selection and a dry-run option. A local sync gives teams searchable copies of their work, with offline reads available when the service cannot be reached. There is no separate keen account and no telemetry.
How it works
The AI connection presents two tools. keen_search finds the operations that match a task and returns their parameters. keen_run executes the selected operation. Discovery happens locally, so finding a command does not call Atlassian. This gives the agent a small front door to a large working surface.
Repeat reads within five minutes can come from a response cache. A successful write clears that cache so the next read can see the changed record. A separate local sync supports local full-text search. These are different kinds of freshness, and the interface lets the caller choose.
Coverage comes from official API specifications, with our working improvements carried alongside the generated commands. The refresh process compares new specifications with a recorded baseline, preserves those improvements and identifies changed or retired operations. Documentation and command references follow the same source.
What was hard
The hard part is keeping broad coverage useful as upstream APIs change. A command can still appear in an official specification after its endpoint stops working. keen marks deprecated operations, ranks their alternatives ahead of them and can explain the replacement when an old command is no longer available.
Early use also exposed local-search and database-migration defects. Those failures shaped a tool built around everyday work rather than a catalogue of endpoints. The count measures coverage; task discovery, clear errors and fresh reads determine whether that coverage helps someone finish a job.