How to integrate Linear MCP with Kimi Code

Trusted by
AWS
Glean
Zoom
Airtable

30 min · no commitment · see it on your stack

Linear logo
Kimi Code logo
divider

How to integrate Linear MCP with Kimi Code

Kimi Code is Moonshot AI's open-source coding agent, powered by Kimi K2.6. It runs in your terminal, reads and edits code, executes shell commands, and plans multi-step tasks, with native MCP support for extending it to outside tools.

In this guide, I will explain the easiest and most secure way to connect your Linear account to Kimi Code via Composio Connect, so it can create a new bug for team Mobile, add a comment to issue LIN-123, list all cycles for the Design team, and more without ever putting your account credentials at risk.

Also integrate Linear with

Why use Composio?

Composio provides:

  • Access to 1,000+ managed apps from a single MCP endpoint. This makes it convenient for agents to run cross-app workflows.
  • Managed OAuth. You do not have to worry about authentication and authorization flows for every app.
  • Programmatic tool calling. Allows LLMs to write code in a remote workbench to handle complex tool chaining. This reduces back-and-forth for frequent tool calls.
  • Large tool response handling outside the LLM context. This minimizes context bloat from large tool responses.
  • Dynamic just-in-time access to thousands of tools across hundreds of apps. Composio loads the tools your agent needs, so LLMs are not overwhelmed by tools they do not need.

Connect Linear to Kimi Code

Kimi Code is a TypeScript agent distributed through npm. It acts as an MCP client and reads server definitions from an mcp.json file, and it can also add and authenticate servers conversationally through /mcp-config. Composio is a remote HTTP server that authenticates with OAuth, so no API key is stored anywhere.

1. Install Kimi Code

The quickest way is the official install script, which requires no pre-installed Node.js and places the kimi executable on your PATH.

bash
# macOS or Linux
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash

# Windows PowerShell
irm https://code.kimi.com/kimi-code/install.ps1 | iex

# Confirm the installation
kimi --version

2. Log in

Start Kimi Code in your project directory, then sign in from the interactive UI:

bash
kimi

Run /login and choose Kimi Code OAuth using the device-code flow, or use a Moonshot API key.

3. Add Composio with /mcp-config

In current versions of Kimi Code, MCP servers are managed inside the app, not with a shell subcommand. From the interactive UI, run:

bash
/mcp-config
Kimi Code MCP config flow for adding the Composio MCP server

Tell it the server name and URL in plain language. For example:

Server name is Composio, and here is the server URL: https://connect.composio.dev/mcp

Kimi Code asks whether to add it globally, at ~/.kimi-code/mcp.json, or project-local for the current checkout, then writes the entry for you:

bash
{
  "mcpServers": {
    "Composio": {
      "url": "https://connect.composio.dev/mcp"
    }
  }
}

There is no transport field to set. Kimi Code infers HTTP from the url.

4. Restart the session

The new server is picked up on a fresh session, not the current one. Start a new session:

bash
/new

On the new session, Kimi Code detects that the server needs authorization and prompts you to run:

bash
/mcp-config login Composio

5. Authorize with OAuth

Run the command Kimi suggests:

bash
/mcp-config login composio

Kimi Code opens Composio's authorization page or surfaces a URL. Approve access, then return to the session. You should see confirmation that the Composio MCP server is connected.

Composio authorization page for Kimi Code MCP setup

Check the connection status any time with /mcp. Composio should appear as connected with its tools listed.

Kimi Code showing Composio connected after OAuth authorization

Connect your Linear account

Back in a Kimi Code session, ask the agent to connect to Linear or give it any Linear-related task.

For example, ask it to:

  • "Create a new bug for team Mobile"
  • "Add a comment to issue LIN-123"
  • "List all cycles for the Design team"

It will prompt you to authenticate and authorize access to Linear.

That is it. Composio tools are now available in Kimi Code, and your Linear account is ready to use.

Supported Tools & Triggers

Tools
Triggers
Create attachmentCreates a new attachment and associates it with a specific, existing Linear issue.
Add reaction to commentTool to add a reaction to an existing Linear comment.
Create a commentCreates a new comment on a specified Linear issue.
Create linear issueCreates a new issue in a specified Linear project and team, requiring team_id and title, and allowing optional properties like description, assignee, state, priority, cycle, and due date.
Create issue relationCreate a relationship between two Linear issues using the issueRelationCreate mutation.
Create a labelCreates a new label in Linear for a specified team, used to categorize and organize issues.
Create ProjectCreates a new Linear project with specified name and team associations.
Create Project MilestoneTool to create a project milestone in Linear with a name and optional target date and sort order.
Create Project UpdateTool to create a project status update post for a Linear project.
Delete issueArchives an existing Linear issue by its ID, which is Linear's standard way of deleting issues; the operation is idempotent.
Download issue attachmentsDownloads a specific attachment from a Linear issue; the `file_name` must include the correct file extension.
Get current userGets the currently authenticated user's ID, name, email, and other profile information — this is the account behind the API token, which may be a bot or service account rather than a human user.
Get cycles by team IDRetrieves all cycles for a specified Linear team ID; cycles are time-boxed work periods (like sprints).
Get create issue default paramsFetches a Linear team's default issue estimate and state, useful for pre-filling new issue forms.
Get Linear issueRetrieves an existing Linear issue's comprehensive details, including id, identifier, title, description, timestamps, state, team, creator, attachments, comments (with user info and timestamps, use issue.
Get Linear projectRetrieves a single Linear project by its unique identifier.
List issue draftsTool to list issue drafts.
List issues by team IDTool to list all issues for a specific Linear team, scoped by team ID.
Get all cyclesRetrieves all cycles (time-boxed sprint iterations) org-wide from the Linear account; no filters applied.
List Linear issuesLists non-archived Linear issues; if project_id is not specified, issues from all accessible projects are returned.
Get labelsRetrieves labels from Linear.
List linear projectsRetrieves all projects from the Linear account.
List Linear statesRetrieves all workflow states for a specified team in Linear, representing the stages an issue progresses through in that team's workflow.
Get teamsRetrieves all teams with their members and projects.
List Linear usersLists all workspace users (not team-scoped) with their IDs, names, emails, and active status.
Remove label from Linear issueRemoves a specified label from an existing Linear issue using their IDs; successful even if the label isn't on the issue.
Remove reaction from commentTool to remove a reaction on a comment.
Run Query or MutationExecute any GraphQL query or mutation against Linear's API.
Search Linear issuesSearch Linear issues using full-text search across identifier, title, and description.
Update issueUpdates an existing Linear issue using its `issue_id`; requires at least one other attribute for modification, and all provided entity IDs (for state, assignee, labels, etc.
Update a commentTool to update an existing Linear comment's body text.
Update ProjectTool to update an existing Linear project.

Conclusion

You have successfully connected Linear to Kimi Code using Composio Connect. Your agent can now manage Linear from the terminal with natural language, without exposing credentials in prompts or local scripts.

Since the same Composio endpoint exposes 1,000+ apps, you can add Slack, Calendar, Linear, and more to the same server and chain them into cross-app workflows.

How to build Linear MCP Agent with another framework

FAQ

What are the differences in Tool Router MCP and Linear MCP?

With a standalone Linear MCP server, the agents and LLMs can only access a fixed set of Linear tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Linear and many other apps based on the task at hand, all through a single MCP endpoint.

Can I use Tool Router MCP with Kimi Code?

Yes, you can. Kimi Code fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Linear tools.

Can I manage the permissions and scopes for Linear while using Tool Router?

Yes, absolutely. You can configure which Linear scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Linear data and credentials are handled as safely as possible.

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.