productivity
Linear MCP Integration for LangGraph
Connect Linear to LangGraph through the local KosmoKrator MCP gateway with scoped tools, credentials, and write policy.
Connect Linear to LangGraph
Run KosmoKrator integration calls from LangGraph nodes while preserving local credentials and permissions.
Use a graph node that calls the KosmoKrator CLI for deterministic steps or an MCP client for dynamic tool selection. The gateway is local, scoped to this integration, and starts with
--write=deny so LangGraph can inspect read-capable tools without receiving write access by default.
Linear MCP Config for LangGraph
Headless CLI calls fit repeatable graph edges; MCP fits exploratory agent nodes.
{
"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 LangGraph
LangGraph 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. |