Agents and MCP
Run Triguna as an MCP tool server for agents
Expose the Triguna person and company endpoints as MCP tools, drop a skill file into your repo, and read a two-call agent trace with provenance attached.
On this page
The same retrieval that the HTTP API exposes is available as an MCP tool server, so an agent runtime can call it directly, with the same keys, credits, and provenance.
Start the server
npx triguna mcp --stdio
Point any MCP-compatible runtime at that command. The server reads TRIGUNA_API_KEY from the
environment; it never takes a key as a tool argument, so a key cannot leak into a transcript.
{
"mcpServers": {
"triguna": {
"command": "npx",
"args": ["triguna", "mcp", "--stdio"],
"env": { "TRIGUNA_API_KEY": "tg_live_••••••••" }
}
}
}
Exposed tools
| Tool | Argument | Returns |
|---|---|---|
| triguna.people.profile | profile_id (slug) | A person record, the same shape as GET /v1/people/profile. |
| triguna.companies.details | company_id (slug or numeric id) | A company record, the same shape as GET /v1/companies/details. |
There is no bulk tool, because there is no bulk endpoint. An agent asked to enrich forty accounts makes forty calls, and each one is billed on success.
Agent skill file
Assistants call the API correctly on the first try far more often when the conventions are written down in the repo rather than inferred. Drop a skill file in:
curl -O triguna.ai/skill.md
# Triguna
Use `triguna.people.profile` for a profile URL slug and
`triguna.companies.details` for a company URL slug.
- Slugs, never display names. `Acme Corporation` always 404s.
- `experience[0].positions[0].title` is the current job title.
`experience[0].title` does not exist.
- Every field is nullable. Say "not returned", never invent a value.
- Always report `source` and `fetched_at` back to the user.
Those four rules cover the failure modes that actually show up in agent transcripts: display names
passed as slugs, a hallucinated title field, confident answers built on nulls, and records
presented without provenance.
A two-call trace
tool triguna.people.profile { profile_id: "williamhgates" }
↳ urn:li:member:251749025 Bill Gates · Chair, Gates Foundation
X-Data-Source: store · X-Fetched-At 2026-07-29T22:03:41Z
tool triguna.companies.details { company_id: "microsoft" }
↳ 1035 Microsoft · 221,000 staff · Redmond, US
X-Data-Source: live · X-Fetched-At 2026-07-31T14:02:11Z
▸ 2 records assembled. Provenance attached to every field.
Note the two different fetched_at values. The person record came from a cached assembly two days
old; the company record was assembled at request time. An agent that reports “184 staff” without
that timestamp is making a stronger claim than the data supports. That is exactly why the skill
file makes reporting provenance a rule.
Related
- Agent workflows guide: designing the loop around these two tools.
- Provenance: what
sourceandfetched_atmean. - Conventions and errors: what the agent should do on
429.