Skip to main content
Hello and welcome back. In this lesson we whiteboard how an agent should emit actionable tickets into an issue tracker so findings become assignable work items. We’ll zoom into the agent’s output surface and focus exclusively on the issue-tracker integration.

Why integrate with an issue tracker?

Most organizations rely on a centralized issue tracker to triage, assign, and track remediation work. By persisting structured findings as tickets, the agent turns observations into operational work items that teams can act on, prioritize, and measure. Common issue-tracking targets include:
  • Atlassian Jira
  • GitHub Issues
  • Linear
  • Google Sheets (used as a lightweight tracker in some organizations)
Regardless of which tool your organization uses, the agent needs a stable integration surface to interact programmatically. Historically this was a raw API call; today many vendors provide a managed connector or integration endpoint — which we’ll refer to as an MCP — that offers a more stable, documented integration behavior.
Here, “MCP” refers to the tool’s connector/integration endpoint (the integration surface and authentication method your agent can use). It could be a REST API, webhooks, or a managed connector provided by the vendor.

What you need from the issue tracker (connector requirements)

To keep the example concrete, assume we have an internal, custom Issue Tracker (easily replaceable with Jira, GitHub Issues, Linear, etc.). The agent needs an “issue ticket creator” component to convert findings into tickets and persist them via the MCP.

Issue ticket creator — responsibilities

  • Consume the agent’s structured output (for example, the tagging-rules.yaml processed results and the final finding metadata).
  • Convert that structured output into a ticket payload containing title, description, labels, priority, assignee, and other metadata.
  • Call the issue tracker via its MCP to create or update tickets, and record the resulting ticket IDs for correlation and deduplication.
A representative ticket payload might look like the following:

How the agent should interact with the MCP

  1. Build the ticket payload from the agent’s structured output, using standardized fields for easier downstream filtering and reporting.
  2. Authenticate to the MCP using the configured method (API key, OAuth token, or service account).
  3. POST (or call the connector’s create-ticket operation) the payload to the MCP endpoint.
  4. Handle responses: persist the created ticket ID in agent logs or metadata, and update existing tickets on repeated findings using idempotency keys.
Ensure the integration uses a least-privilege credential and that your token or service account has only the permissions needed to create/update tickets. Also account for rate limits and error handling (retries, idempotency).
Diagram: agent architecture (overview)
The diagram below illustrates an agent core (Python / prompt + LangChain) connected to components such as the LLM, MCP connector, tagging rules, system prompt / issue ticket creator, and the issue tracker. The issue ticket creator uses the MCP to persist structured tickets instead of writing free-form logs.
A diagrams.net (draw.io) screen showing a flowchart of an agent architecture: a central "Agent" (Python/Prompt LangChain) connected to components like an LLM (KodeKloud), MCP - K8 Docker, tagging rule YAML, system prompt/issue ticket creator, and an issue tracker. The left and right panels show shape/tool palettes and diagram options.

Next steps (implementation checklist)

  • Implement the issue ticket creator that reads the agent’s structured output and formats ticket payloads according to the MCP schema.
  • Wire authentication and MCP endpoint configuration into the agent runtime using a secrets manager or environment-backed credentials.
  • Add robust error handling: retries with exponential backoff, handling 429/5xx responses, and idempotency keys to avoid duplicate tickets.
  • Log and persist mapping between finding_id and ticket_id so the agent can update or close tickets as findings evolve.
Implementation details and code examples for specific trackers (Jira, GitHub Issues, Linear) will be covered in subsequent material. Links and references

Watch Video