productivity
Linear MCP Integration for Codex
Connect Linear to Codex through the local KosmoKrator MCP gateway with scoped tools, credentials, and write policy.
Connect Linear to Codex
Use KosmoKrator as a local MCP proxy for Codex so coding sessions can reach selected integrations with explicit write policy.
Register kosmo mcp:serve as a local stdio server and choose the integration allowlist. The gateway is local, scoped to this integration, and starts with
--write=deny so Codex can inspect read-capable tools without receiving write access by default.
Linear MCP Config for Codex
Keep write access denied or ask-based unless the workspace is trusted.
{
"mcpServers": {
"kosmokrator-linear": {
"type": "stdio",
"command": "kosmo",
"args": [
"mcp:serve",
"--integration=linear",
"--write=deny"
]
}
}
} Run the Gateway Manually
kosmokrator mcp:serve --integration=linear --write=deny Why Use KosmoKrator Here
Expose only Linear instead of a broad multi-service tool list.
Reuse credentials already configured for the KosmoKrator CLI and Lua runtime.
Start read-only, then opt into ask or allow for trusted workspaces.
Linear Tools Visible to Codex
Codex sees stable MCP tool names generated from the Linear integration catalog.
| MCP tool | Source function | Type | Description |
|---|---|---|---|
integration__linear__linear_create_issue | linear.linear_create_issue | Write | Create a new issue in Linear. Requires a team ID and title. Optionally set description, priority (0=none, 1=urgent, 2=high, 3=medium, 4=low), assignee, labels, and initial state. Use linear_get_teams to find team IDs. |
integration__linear__linear_get_issue | linear.linear_get_issue | Read | Get a single Linear issue by ID or identifier (e.g., "TEAM-123"). Returns full details including description, state, assignee, labels, team info, and comments. |
integration__linear__linear_update_issue | linear.linear_update_issue | Write | Update an existing Linear issue. Provide the issue ID or identifier and any fields to change. Only specified fields will be updated. Priority: 0=none, 1=urgent, 2=high, 3=medium, 4=low. |
integration__linear__linear_search_issues | linear.linear_search_issues | Read | Search Linear issues using filter criteria. Supports filtering by text query, team, state name, assignee, and priority. Returns matching issues with pagination info. |
integration__linear__linear_list_issues | linear.linear_list_issues | Read | List issues for a specific Linear team. Supports filtering by status, assignee, and cursor-based pagination. Use linear_get_teams to find team IDs. |
integration__linear__linear_delete_issue | linear.linear_delete_issue | Write | Delete a Linear issue by ID or identifier. This action is irreversible. |
integration__linear__linear_create_comment | linear.linear_create_comment | Write | Add a comment to a Linear issue. Supports markdown formatting. Provide the issue ID or identifier and the comment body. |
integration__linear__linear_list_comments | linear.linear_list_comments | Read | List all comments on a Linear issue, ordered chronologically. Provide the issue ID or identifier. |
integration__linear__linear_get_teams | linear.linear_get_teams | Read | Get all Linear teams the authenticated user has access to, including team name, key, description, and member list. Use this to discover team IDs needed for other tools. |
integration__linear__linear_list_projects | linear.linear_list_projects | Read | List Linear projects with optional cursor-based pagination. Returns project details including state, dates, lead, and associated teams. |
integration__linear__linear_create_project | linear.linear_create_project | Write | Create a new Linear project. Requires a name and at least one team ID. Optionally set description, lead, and target dates. Use linear_get_teams to find team IDs. |
integration__linear__linear_update_project | linear.linear_update_project | Write | Update a Linear project. Provide the project ID and any fields to change. Only specified fields will be updated. |
integration__linear__linear_list_initiatives | linear.linear_list_initiatives | Read | List Linear initiatives with optional limit. Returns initiative details including state, dates, and associated projects. |
integration__linear__linear_create_initiative | linear.linear_create_initiative | Write | Create a new Linear initiative. Initiatives group related projects together. Requires a name. Optionally include a description. |
integration__linear__linear_list_labels | linear.linear_list_labels | Read | List issue labels in Linear. Optionally filter by team. Returns label ID, name, color, and description. |
integration__linear__linear_add_label | linear.linear_add_label | Write | Add a label to a Linear issue. Provide the issue ID or identifier and the label ID to add. The label will be appended to existing labels. Use linear_list_labels to find label IDs. |
integration__linear__linear_remove_label | linear.linear_remove_label | Write | Remove a label from a Linear issue. Provide the issue ID or identifier and the label ID to remove. Other labels on the issue are preserved. |
integration__linear__linear_get_current_user | linear.linear_get_current_user | Read | Get the currently authenticated Linear user's profile, including ID, name, email, and avatar URL. |
integration__linear__linear_list_workflows | linear.linear_list_workflows | Read | List workflow states for a Linear team. Shows all available statuses (e.g., Backlog, Todo, In Progress, Done) with their IDs, types, and colors. Optionally filter by team ID. |
integration__linear__linear_raw_query | linear.linear_raw_query | Read | Execute an arbitrary GraphQL query or mutation against the Linear API. Provide a GraphQL document and optional variables as JSON. Use this for advanced operations not covered by other tools. |