HTTP client for Codmir MCP tools — manage todos, tickets, tasks, and sprints programmatically.
MCP Client
HTTP client wrapper for the Codmir MCP server. Use it from your VSCode extension, CLI, or any other application to call MCP tools without stdio transport.
npm install @codmir/sdkQuick Start
import { MCPClient } from '@codmir/sdk/mcp';
const mcp = new MCPClient({
apiUrl: 'https://codmir.com',
token: 'your-auth-token',
userId: 'user-id',
});
// List todos
const todos = await mcp.listTodo({ projectId: 'proj_123' });
// Create a ticket
await mcp.createTicket({
projectId: 'proj_123',
title: 'Fix login bug',
priority: 'HIGH',
type: 'BUG',
});Configuration
const mcp = new MCPClient({
apiUrl: 'https://codmir.com', // Your Codmir instance URL
token: 'your-auth-token', // Authentication token
userId: 'user-id', // User ID for requests
orgId: 'org-id', // Optional organization ID
timeout: 30000, // Request timeout in ms (default: 30000)
});Methods
listTodo
List tickets/todos for a project with optional filters.
const result = await mcp.listTodo({
projectId: 'proj_123',
status: 'open', // 'all' | 'open' | 'in_progress' | 'review'
priority: 'high', // 'all' | 'critical' | 'high' | 'medium' | 'low'
assigneeId: 'user-456', // Filter by assignee
limit: 20, // Max results
});updateTodoStatus
Update a ticket's status.
await mcp.updateTodoStatus({
projectId: 'proj_123',
ticketId: 'TKT-1',
status: 'done', // 'open' | 'in_progress' | 'review' | 'done' | 'closed'
});executeTask
Execute a task with natural language instructions.
const result = await mcp.executeTask({
projectId: 'proj_123',
instructions: 'Add input validation to the signup form',
ticketId: 'TKT-5', // Optional: link to a ticket
});createTicket
Create a new ticket.
await mcp.createTicket({
projectId: 'proj_123',
title: 'Add dark mode support',
description: 'Users have requested a dark theme option',
priority: 'MEDIUM', // 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL'
type: 'FEATURE', // 'BUG' | 'FEATURE' | 'TASK' | 'IMPROVEMENT'
});getSprintTasks
Get tasks in the current sprint.
const tasks = await mcp.getSprintTasks({
projectId: 'proj_123',
status: 'in_progress', // 'all' | 'todo' | 'in_progress' | 'done'
});checkTaskStatus
Check the status of a running task execution.
const status = await mcp.checkTaskStatus('exec_abc123');getProjectContext
Get the full project context (structure, recent activity, configuration).
const context = await mcp.getProjectContext('proj_123');callTool (Generic)
Call any MCP tool by name. Use this for tools not covered by the convenience methods.
const result = await mcp.callTool('custom_tool_name', {
param1: 'value1',
param2: 42,
});Response Format
All methods return an MCPToolResult:
interface MCPToolResult<T = unknown> {
success: boolean;
data?: T; // Present on success
error?: string; // Present on failure
}const result = await mcp.listTodo({ projectId: 'proj_123' });
if (result.success) {
console.log(result.data);
} else {
console.error(result.error);
}TypeScript Support
import type {
MCPClientConfig,
MCPToolResult,
ListTodoParams,
UpdateTodoStatusParams,
ExecuteTaskParams,
CreateTicketParams,
GetSprintTasksParams,
} from '@codmir/sdk/mcp';