productivity
Linear MCP Integration for Vercel AI SDK
Connect Linear to Vercel AI SDK through the local KosmoKrator MCP gateway with scoped tools, credentials, and write policy.
Connect Linear to Vercel AI SDK
Use KosmoKrator as a local integration gateway for Vercel AI SDK agents and scripts.
Create an MCP client that starts or connects to the KosmoKrator gateway for the selected integration. The gateway is local, scoped to this integration, and starts with
--write=deny so Vercel AI SDK can inspect read-capable tools without receiving write access by default.
Linear MCP Config for Vercel AI SDK
Prefer CLI JSON calls when a workflow only needs one deterministic integration operation.
{
"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 Vercel AI SDK
Vercel AI SDK 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. |