Skip to content

@jbcom/agentic-triage

TypeScript

Composable triage tools built on the Vercel AI SDK. Issue management, PR review, sprint planning — for GitHub, Jira, Linear, and Beads.

npm version License: MIT

  1. Vercel AI SDK Tools — Drop triage tools into any generateText() or streamText() call
  2. MCP Server — Expose tools to Claude Desktop, Cursor, or any MCP client
  3. Direct TypeScript API — Programmatic access for scripts, CI, and custom integrations
Terminal window
npm install @jbcom/agentic-triage
import { getTriageTools } from '@jbcom/agentic-triage';
import { generateText } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';
const result = await generateText({
model: anthropic('claude-sonnet-4-20250514'),
tools: getTriageTools(),
maxSteps: 10,
prompt: 'List all open critical bugs and create a triage plan',
});

Import only what your agent needs — smaller tool space means more focused behavior:

import { getIssueTools, getReviewTools } from '@jbcom/agentic-triage';
const myAgentTools = {
...getIssueTools(), // Issue CRUD, search, labels
...getReviewTools(), // PR review, comments, approval
};

Add to your Claude Desktop or Cursor MCP config:

{
"mcpServers": {
"triage": {
"command": "npx",
"args": ["@jbcom/agentic-triage", "mcp-server"]
}
}
}

For scripts and CI pipelines:

import { TriageConnectors } from '@jbcom/agentic-triage';
const triage = new TriageConnectors({
provider: { type: 'github', repo: 'my-org/my-repo' },
});
const issues = await triage.issues.list({ status: 'open', priority: 'high' });
const issue = await triage.issues.create({
title: 'Fix login bug',
body: 'Users cannot login with SSO',
type: 'bug',
priority: 'critical',
});
await triage.issues.addLabels(issue.id, ['needs-triage', 'auth']);
Provider Status Use Case
GitHub Issues Complete GitHub-native projects
Beads Complete Local-first, AI-native tracking
Jira Complete Enterprise projects
Linear Complete Modern team workflows

Auto-detected from environment — .beads/ directory uses Beads, .git remote uses GitHub. Or configure explicitly:

const jira = new TriageConnectors({
provider: {
type: 'jira',
host: 'https://mycompany.atlassian.net',
projectKey: 'PROJ',
apiToken: process.env.JIRA_API_TOKEN!,
email: 'dev@mycompany.com',
},
});
const linear = new TriageConnectors({
provider: {
type: 'linear',
team: 'ENG',
apiKey: process.env.LINEAR_API_KEY!,
},
});
Tool Description
listIssues List issues with filtering
getIssue Get a specific issue by ID
createIssue Create a new issue
updateIssue Update an existing issue
closeIssue Close an issue with reason
searchIssues Search issues by query
addLabels Add labels to an issue
removeLabels Remove labels from an issue
Tool Description
getPRComments Get comments on a PR
submitReview Submit a structured review decision
Tool Description
getSprints Get all sprints
getCurrentSprint Get the current sprint
getEpics Get epic-style work items with computed progress
import { anthropic } from '@ai-sdk/anthropic';
import { generateText } from 'ai';
import { getTriageTools } from '@jbcom/agentic-triage';
async function triageAgent() {
const result = await generateText({
model: anthropic('claude-sonnet-4-20250514'),
tools: getTriageTools(),
maxSteps: 10,
prompt: `
You are a triage agent. Please:
1. List all open critical bugs
2. Assess severity and add appropriate labels
3. Create a summary report
`,
});
console.log('Triage Complete:', result.text);
}
Variable Description
GH_TOKEN GitHub PAT with repo scope
ANTHROPIC_API_KEY For AI-powered triage
OPENAI_API_KEY Alternative AI provider

Previously published as @agentic-dev-library/triage. To migrate:

// Old
import { getTriageTools } from '@agentic-dev-library/triage';
// New
import { getTriageTools } from '@jbcom/agentic-triage';