Skip to main content
Glama

Show the cross-service call graph

get_service_graph
Read-onlyIdempotent

Return the whole cross-service call graph in one call: consumer -> producer edges across every protocol, unmatched calls, orphaned endpoints. Use it first for topology: who depends on a service, what a change ripples into. An edge carrying via_sdk reaches its producer through a published package rather than a call site of its own. An edge carrying same_service has one service at both ends, a service calling its own operation, and is listed after the cross-service ones. For one pair in depth, use check_compatibility. For the types on both sides of one pair's operations, use get_contract_pair. On a large project, call get_project_map first: it summarises this graph section by section and names the drill-down tool for each.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repoNoYour repo as owner/repo (git remote) or just the repo name. Resolves which Carrick project to query.
limitNoRows per array per page (default 40, max 200). The *_count totals are never paged.
offsetNoRows to skip in every array (default 0). Pass the `next_offset` from a previous call to page through.
projectNoCarrick project slug to query. Omit to auto-resolve via `repo`, or omit both when the workspace has one project.
serviceNoOptional: return only edges that TOUCH this service (as consumer or producer), plus its unmatched calls and orphaned endpoints. Omit for the whole project graph.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real semantics beyond them: what via_sdk means, what same_service means and how those edges are ordered. It does not cover paging behaviour or response size expectations, which is the remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then edge-type semantics, then routing. Every sentence earns its place, though the via_sdk/same_service explanations are dense and the paragraph is longer than strictly needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining what comes back and it does: edge shapes, unmatched calls, orphaned endpoints, edge ordering. Combined with full schema coverage of the five optional params, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including service scoping, limit/offset paging and repo/project resolution is already documented. The description implies service-scoped queries ('who depends on a service') but adds no syntax or behaviour beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return the whole cross-service call graph') and enumerates exactly what the payload contains: consumer -> producer edges, unmatched calls, orphaned endpoints. This is distinguishable from every sibling at a glance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it ('Use it first for topology'), and routes to named alternatives with the condition that selects each: check_compatibility for one pair in depth, get_contract_pair for types on a pair, get_project_map first on a large project. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.