AgentLinkOps / Reference

Tool catalog

Every tool registered for the AgentLinkOps cloud surface, shown in its honest state. This page is generated from the same inventory the service registers from, so its counts and badges cannot drift from the registry.

What the states mean

The registry defines 62 cloud tools: 61 answer an authenticated connection on /mcp, and one (verify_link_free) is the anonymous free check served separately on /free/mcp. Of all 62, 44 are locally tested, 15 are registered without a stored local test run, and 3 are admission-gated: request_competitor_inventory, request_domain_overview, discover_backlinks. Admission-gated tools refuse live work with PROVIDER_NOT_CONFIGURED before anything is saved.

Production has been live since September 12, 2026. No authenticated tools/list readback from that deployment is stored yet, so this page reports registry state, not a verified deployed count. The registry also defines 8 repo-local context tools (context_*) that belong to a repository checkout and are served by no cloud endpoint; they are not listed below.

locally tested
Exercised by the repository’s own tests, through the MCP surface or the tool’s service module.
registered
Defined in the registry and served by the transport. No stored local test run yet, and no claim of live verification on a deployment.
admission-gated
Registered, but the paid supplier path behind it is switched off in this build. Calls refuse with PROVIDER_NOT_CONFIGURED before any persistence.

Workspace & access

In the guide

10 tools, 7 locally tested.

ToolWhat it doesStateScopes
create_projectwritesCreate a project for the product domain.locally testedprojects:write
list_projectsList projects available to this agent.locally testedprojects:read
get_workspaceRead workspace limits, usage and membership.locally testedprojects:read
get_usageRead workspace usage, allowance and billing availability for one UTC month. Source and destination checks share allowance; reserved, consumed and released are separate totals.locally testedprojects:read
invite_memberwritesInvite one email address as admin, member or viewer, optionally scoped to specific projects. Returns a join token ONCE; only its hash is stored. The token alone is NOT enough to join — the accepting user's VERIFIED email must match the invitation, so a forwarded link cannot admit a stranger. An invitation can never grant a role or a project the inviter does not hold, and owner is not invitable: transferring ownership is its own act. Linktrail does not send the email; hand the token to the person yourself.registeredprojects:write
list_invitationsList open, accepted and revoked invitations. Tokens are never returned.registeredprojects:read
revoke_invitationwritesRevoke an open invitation so its token can no longer be used.locally testedprojects:write
remove_memberwritesRemove a member from this workspace. Their keys stop working on the next request, because every principal re-reads membership per request. The last owner cannot be removed.locally testedprojects:write
list_membersList this workspace's members with their role and, when narrowed, the exact projects they can see. A null project list means every project.registeredprojects:read
set_member_accesswritesChange one member's role, their project grant, or both. A grant of null means every project. Refusals worth knowing: the last owner cannot be demoted, nobody can raise their own role or outrank their actor, and an owner cannot be scoped to specific projects because a scoped owner can lock a project away from everyone. A member's grant is the CEILING on every key they hold, so narrowing it narrows their existing keys immediately.locally testedprojects:write

Destination health

In the guide

9 tools, 9 locally tested.

ToolWhat it doesStateScopes
monitor_targetwritesRegister an exact public destination URL for recurring health checks. Duplicates within a project are reused. Each completed check uses one unit of the shared monthly check allowance.locally testedwatches:write
update_targetwritesPause/resume a destination check or change its cadence.locally testedwatches:write
get_targetRead a destination health watch and its current evidence state.locally testedwatches:read
list_targetsList explicitly monitored destination URLs. Checks are independent of source-link presence.locally testedwatches:read
get_target_historyList paginated saved destination-health observations, independently of source-link presence.locally testedwatches:read
list_target_eventsRead the independent destination-health event feed. Its cursor is separate from link events; a broken destination does not imply that its source backlink disappeared.locally testedevents:read
get_target_placementsList placements whose configured target URL exactly matches this destination. Other URLs matched by a domain/path watch are not included.locally testedwatches:read
get_target_jobRead progress and usage reservation for an asynchronous destination-health check job.locally testedwatches:read
request_target_checkwritesQueue a metered destination health check. Reuse the idempotency key for a retry; blocked results remain unknown.locally testedwatches:write

Import & verification

In the guide

6 tools, 5 locally tested.

ToolWhat it doesStateScopes
get_check_jobRead progress and usage reservation for an asynchronous source-link check job.locally testedwatches:read
get_candidate_verificationRead a selected candidate check, immutable job observation, source-check usage and local-reference lineage. Candidate latest evidence may refer to a later explicitly requested check.locally testeddiscovery:read watches:read

7 tools, 5 locally tested.

ToolWhat it doesStateScopes
get_discovery_runRead stored discovery status, query coverage and separate discovery usage. This read never purchases a provider page.locally testeddiscovery:read
list_discovery_runsBrowse stored discovery runs newest first with optional project filtering and bounded cursor pagination. No provider calls, spending or enrollment.locally testeddiscovery:read
list_discovery_candidatesRead up to 100 stored discovery candidates with dated provider provenance and separate verification status. Cursor pages freeze a stored result snapshot; restart without a cursor for newer results. Reads never purchase provider pages.locally testeddiscovery:read
verify_discovery_candidatewritesRequest an asynchronous check of one saved discovery candidate. Returns a verification record and queued job with immutable lineage. Requires an idempotency key; consumes check allowance when executed. Does not establish a verified result synchronously.locally testeddiscovery:read watches:write
request_domain_overviewwritesRequest a separately metered supplier summary for a domain or subdomain. Admission is disabled in this build. Summaries carry their data mode and provider provenance; they are not link checks or totals derived from selected candidates.admission-gateddiscovery:write
get_domain_overviewRead a stored domain overview, dated provider provenance and separate overview usage. Missing counts remain null; reads never purchase another request.locally testeddiscovery:read

Competitor intelligence

In the guide

14 tools, 13 locally tested.

ToolWhat it doesStateScopes
create_competitor_setwritesExplicitly approve one customer and up to ten competitors. Registration does not verify links or buy discovery.locally testeddiscovery:write
get_competitor_setRead an approved competitor revision; historical revisions stay immutable.locally testeddiscovery:read
update_competitor_setwritesApprove a complete new member revision with optimistic concurrency. Keep member IDs only for unchanged members.locally testeddiscovery:write
retire_competitor_setwritesRetire a competitor set to stop new inventory requests; preserve approved revisions and dated evidence.locally testeddiscovery:write
list_competitor_setsList approved competitor sets in one accessible project, including retired sets.locally testeddiscovery:read
request_competitor_inventorywritesRequest separately metered discovery bound to one approved member and revision. Provider admission remains disabled. No monitoring enrollment.admission-gateddiscovery:write
capture_competitor_inventorywritesFreeze one terminal, previously bound discovery run into an immutable inventory. Reads only stored evidence; never purchases a query or checks links.locally testeddiscovery:write
list_competitor_inventoriesList dated inventory summaries for one approved set revision. Missing edges are not confirmed absence.locally testeddiscovery:read
list_competitor_inventory_rowsPage exact stored source/target rows with contributor identity and captured verification state. No provider tokens or raw evidence.locally testeddiscovery:read
get_competitor_gap_reportCompare selected frozen inventories by exact page or source host. Missing edges are dataset-qualified; incomplete data cannot establish gaps. Page groups or pass groupKey for exact contributor rows. Select exclusionRevision explicitly to apply saved rules. Never buys discovery or checks links.locally testeddiscovery:read
get_domain_mix_reportRender the referring-domain mix over supplied discovery lanes: generic and niche splits from the labels your imported rows carry, ours against each selected frozen inventory, with label coverage, per-lane counts and the padding-guidance report line. Lanes are request data and never stored. One to twenty lanes, up to 2000 rows each. Never buys discovery or checks links.locally testeddiscovery:read
get_competitor_exclusionsRead current or historical saved source exclusion rules for an accessible competitor set. Revision zero means no saved rules.locally testeddiscovery:read
save_competitor_exclusionswritesSave a complete replacement of up to 100 exact page/host exclusion rules with expectedRevision. Empty rules clear the saved view. Keeps historical evidence and revisions; never changes provider queries or monitoring.locally testeddiscovery:write
preview_competitor_exclusionsDry-run exact source exclusion rules against selected frozen inventories. Returns before/after counts and bounded matched/collateral examples. Does not save rules, buy discovery, check links or alter evidence.locally testeddiscovery:read

1 tool, 0 locally tested.

ToolWhat it doesStateScopes
get_public_contactsExtract explicitly published emails and contact-page candidates from the latest saved public HTML. Returns dated evidence; does not infer emails, verify deliverability or send outreach.registeredwatches:read

Delivery (webhooks)

In the guide

5 tools, 1 locally tested.

ToolWhat it doesStateScopes
create_webhookwritesSubscribe an HTTPS receiver to source or destination events, or periodic digests. Returns the signing secret once. Delivery is signed, at-least-once, and starts at the current sequence; deduplicate by Linktrail-Delivery-Id and recover gaps through the event feed. A 410 receiver response disables delivery.registeredwatches:write
list_webhooksList this workspace's webhook endpoints with their state, subscribed feeds and types, consecutive failure count and why any was disabled. Secrets are never returned.registeredevents:read
set_webhook_statewritesEnable or disable one endpoint. Disabling stops delivery and loses nothing: undelivered events stay in the feed and can be read with a cursor. Re-enabling clears the failure count.registeredwatches:write
rotate_webhook_secretwritesAdd a second active signing secret, or retire the older one. Both secrets sign every request while two are active, so a receiver updates its configuration whenever it likes rather than deploying in lockstep with us. The new secret is returned ONCE.locally testedwatches:write
list_webhook_deliveriesRead recent delivery attempts for one endpoint: state, attempt count, last HTTP status and error. Diagnostic only; it does not resend.registeredevents:read

How this page stays honest

One command, npm run generate:tools, rebuilds the inventory behind every table on this page directly from the tool registry (src/tool-registry.js). The web build refuses to complete when that inventory no longer matches the registry, and the page refuses to render when a tool is missing from its category map. Authenticated tools/list on your connection remains the source of truth for input schemas and current names.

Read tool jobs by workflow in the connection guide, connect a client with the tested setup examples, or read the agent brief your agent starts from.