Skip to main content
Glama

Server Details

Evidence-graded agent-work lanes, bid advice, live agent jobs and a hash-chained evidence ledger.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
t3ratech/market-pulse-mcp
GitHub Stars
0
Server Listing
T3rnel Market Pulse

TDQS

A4.6/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose, and descriptions explicitly cross-reference when to use alternatives (e.g., pulse_lanes vs pulse_resources, pulse_lane_detail vs pulse_should_i_bid). Overlap between resource and lane tools is mitigated by clear guidance to use the earning-specific tools for work decisions.

Naming Consistency5/5

All tools use the pulse_ prefix followed by a consistent snake_case noun or verb phrase. Singular/plural distinction is used meaningfully (pulse_lanes for list, pulse_lane_detail for single).

Tool Count5/5

10 tools is well-scoped for a market intelligence server, covering discovery, detail, decision, evidence, methodology, stats, and account without redundancy.

Completeness4/5

The surface covers the domain comprehensively: lanes, resources, jobs, evidence, methodology, stats, and account. A minor gap is the lack of a dedicated job detail tool, though listings include key fields.

Available Tools

10 tools
pulse_accountCheck tier and daily quotaA
Read-onlyIdempotent
Inspect

Report which Market Pulse tier this connection is served at (free, basic, pro, max or operator), whether an API key was recognised, the daily pull quota and how much of it remains, the freshness that tier buys, and where to upgrade. Call it after pulse_jobs reports redacted listings, when a call is refused for quota, or to confirm a freshly configured key works; it is the only tool whose answer depends on who is asking, and it returns no listings (use pulse_jobs for those). Read-only and idempotent; it consumes one pull when a key is sent and none when anonymous. Returns {tier, authenticated, quotaPerDay, remainingToday, freshness, pricingUrl, accountUrl}. Never returns the key itself.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierYesTier the connection is served at.
freshnessYesData freshness the tier buys.
accountUrlYesWhere API keys are created.
pricingUrlYesWhere plans are listed.
quotaPerDayYesDaily pull quota; null means unmetered.
authenticatedYesTrue when an API key was recognised.
remainingTodayYesPulls left today; null when anonymous or unmetered.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive/openWorld, yet the description adds genuinely non-inferable behaviour: it costs one pull when a key is sent and zero when anonymous, it is the only tool whose answer depends on the caller's identity, and it never echoes the key. The missing piece is whether the quota counter is per-connection or per-key, which an agent tracking usage would want.

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 purpose, then usage, then behaviour, then return shape — a sensible ordering with no filler sentences. It is slightly long, and enumerating the return fields is partly redundant given an output schema exists.

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?

For a zero-parameter, read-only diagnostic tool, the description covers triggers, cost model, identity-dependence, and the fact that listings are absent. Return values are also structured in the output schema, so nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

The tool takes no parameters, so there is nothing for the description to disambiguate and the baseline applies. The description's only parameter-adjacent content is the note that sending a key changes cost, which is useful framing rather than schema duplication.

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 (report) plus the exact resource set: tier, whether the key was recognised, daily quota and remainder, freshness, and upgrade location. It explicitly separates itself from pulse_jobs ('it returns no listings'), so an agent can route without opening a schema.

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?

Gives three concrete trigger conditions (after pulse_jobs shows redacted listings, after a quota refusal, to validate a freshly configured key) and names the alternative tool for listings. This is explicit when-to-use plus when-not-to-use.

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

pulse_evidenceRead the evidence ledgerA
Read-onlyIdempotent
Inspect

Read the hash-chained evidence ledger that every grade is derived from: one record by id, every record linked to a lane, or the whole chain when no argument is given. Use it to verify a claim before relying on it, to cite sources, or to audit that a record has not been altered (each record carries payloadSha256, previousChainHash and chainHash). Call pulse_lanes to find a lane slug; pass id or lane, not both; with neither you receive the entire ledger, which is large, so prefer a lane. Read-only and idempotent. Works without an API key on the free tier. Returns {count, records[]} where each record has id, kind, lane, source, captureMethod, capturedAt, summary and the hashes. An unknown id or lane is refused with an error naming it.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoEvidence record id to fetch on its own, as found in a lane's evidence[] or a previous call. Takes precedence over lane.
laneNoLane slug (from pulse_lanes): returns every evidence record linked to that lane.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of records returned.
recordsYesEvidence records with id, kind, lane, source, captureMethod, capturedAt, summary, payloadSha256, previousChainHash and chainHash.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent safety, but the description goes well beyond them: it explains the hash-chain provenance (payloadSha256, previousChainHash, chainHash), that unknown id/lane is refused with an error naming it, that the tool works without an API key on the free tier, and that the unfiltered call is large. The only redundancy is restating read-only/idempotent, which does not undercut the added context.

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?

A single dense paragraph that is well front-loaded: retrieval modes first, then usage, then constraints and return shape. Most sentences earn their place, but the 'Returns {count, records[]}...' sentence partially duplicates the available output schema, and 'Read-only and idempotent' repeats the annotations.

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?

For a 2-parameter read tool with an output schema, the description covers everything an agent needs: the three call shapes, precedence and mutual exclusion, the precondition for lane slugs, error behavior for unknown keys, auth requirements, and the size caveat. Return-value detail is largely carried by the output schema.

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

Parameters4/5

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

Schema coverage is 100% and the schema already documents id precedence and lane origin, so the baseline is 3. The description adds the mutual-exclusion rule ('pass id or lane, not both') and the consequence of passing neither (the entire, large ledger), which the schema does not state, nudging it above baseline.

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?

Opens with a specific verb and resource ('Read the hash-chained evidence ledger') and immediately names the three retrieval modes (by id, by lane, whole chain). It explicitly routes to the sibling pulse_lanes for lane slugs, so an agent can distinguish it from the other pulse_* tools without opening a schema.

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?

States concrete when-to-use cases (verify a claim before relying on it, cite sources, audit for tampering), names the alternative for lane discovery (pulse_lanes), states the mutual-exclusion rule ('pass id or lane, not both'), and steers away from the no-argument case because the full ledger is large. 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.

pulse_jobsLive agent job listingsA
Read-only
Inspect

List open job listings collected from the agent-accessible lanes, each with title, organisation, URL, reward and currency, bid count, posting time and status. Use it to find work an agent can take now; use pulse_lanes first if you need to know which lanes are trustworthy. Freshness is tiered by the caller's API key: free sees listings once they are up to 24h old, basic 4h, pro and above can trigger a live refresh, and newer listings are counted in redacted rather than shown. Read-only for the caller, though a keyed call consumes one pull from the daily quota and a pro+ call may refresh the live collection. Returns {tier, count, total, redacted, upgrade, upgradeUrl, listings[]}. Fails with a refusal if the persistent store is unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFree-text match over title, org and skills.
laneNoLane slug to restrict to, e.g. "hackernews" or "algora". Omit for every collected lane.
limitNoMax listings to return (default 100, maximum 500).
statusNoListing status; omit for open listings.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierYesTier the call was served at: free, basic, pro, max or operator.
countYesListings returned.
totalYesMatching listings visible to this tier.
listingsYesListings with lane, title, org, url, reward, bids, posted and status.
redactedYesNewer listings hidden by this tier's freshness window.
upgradeUrlNoPricing URL when listings were redacted, otherwise null.

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/destructiveHint=false annotations by disclosing tiered freshness by API key, that a keyed call consumes one pull from a daily quota, that pro+ can trigger a live refresh, and that newer listings are counted as redacted rather than shown. It also states the failure mode (refusal if the persistent store is unavailable), which annotations cannot convey.

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-loads purpose and output fields before the operational caveats, and every clause carries information an agent would otherwise have to discover. It is a dense, somewhat run-on block that could be split into shorter sentences, but there is no filler.

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?

Covers listing contents, selection guidance, freshness/quota behavior, and failure mode; the explicit return shape is redundant given the output schema but harmless. For a read-only listing tool with several siblings, nothing material is missing.

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 q, lane, limit and status are already fully documented with defaults and constraints. The description adds contextual color (redaction interacts with result counts, lane trust matters) but no syntax or semantic detail the schema lacks. 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 ("List open job listings collected from the agent-accessible lanes") and enumerates the fields returned, so the agent knows exactly what it gets without opening the schema. It also distinguishes itself from sibling pulse_lanes by positioning that tool as prerequisite for trust context.

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?

Gives explicit when-to-use ("find work an agent can take now") and names the alternative with its qualifying condition ("use pulse_lanes first if you need to know which lanes are trustworthy"). The lane-scoping guidance in the schema is reinforced by the trust framing in the description.

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

pulse_lane_detailGet one lane's full recordA
Read-onlyIdempotent
Inspect

Get the complete record for one agent-work lane: grade and verdict rationale, how an agent accesses it, payout method and currency, adapter, recorded attempts and settlements, and every linked evidence record. Use after pulse_lanes when you need the reasoning behind a grade or the links to act on; do not use it to browse (call pulse_lanes) or to decide whether to spend attempts (call pulse_should_i_bid, which condenses this into a recommendation). Read-only and idempotent. Works without an API key on the free tier. Returns the lane summary fields plus description, website, workUrl, apiUrl, accessMethod, payoutMethod, verdict and an evidence[] array. An unknown slug is refused with an error naming it.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesLane slug exactly as returned in the slug field of pulse_lanes, e.g. "algora" or "jobforagent". Lowercase, hyphenated.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoDisplay name of the lane.
slugYesThe lane slug.
gradeYesAssay grade: A, B, C, F or Unknown.
verdictYesFull verdict with reasons, liveness, access, automation, payout, confidence and freshness.
evidenceYesEvidence records linked to the lane.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely new context: it works without an API key on the free tier, and an unknown slug is refused with an error naming it. The return-field enumeration overlaps the output schema, but the auth and error behavior are real additions.

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

Conciseness3/5

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

Purpose and routing are front-loaded and efficient, but the sentence listing return fields (description, website, workUrl, apiUrl, accessMethod, payoutMethod, verdict, evidence[]) duplicates what the output schema already provides. Dropping that clause would make the block tighter without losing information.

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?

For a single-parameter read tool it covers everything an agent needs: purpose, routing to alternatives, auth requirements, error behavior, and an output schema for the return shape. No material gap remains.

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 coverage is 100% and the schema itself documents the slug format ('lowercase, hyphenated', referencing pulse_lanes). The description adds no syntax beyond that, only the error consequence of a bad value. Baseline 3 is correct when the schema does the heavy lifting.

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 ('Get the complete record for one agent-work lane') and immediately enumerates the record's contents. It explicitly distinguishes itself from pulse_lanes (browsing) and pulse_should_i_bid (spend decisions), so an agent can route correctly without opening a schema.

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?

Gives an explicit trigger ('Use after pulse_lanes when you need the reasoning behind a grade or the links to act on') plus two named exclusions with the sibling to call instead for each. Nothing about when-to-use 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.

pulse_lanesList agent-work lanesA
Read-onlyIdempotent
Inspect

List the agent-work lanes in the Market Pulse index (bounty boards, agent marketplaces, job feeds, agent networks), each with its evidence-backed grade, liveness, agent-access verdict, freshness and confidence. Use this first to discover lane slugs and to shortlist where an autonomous agent can realistically earn; filters narrow the list and omitting all of them returns every lane. Use pulse_lane_detail for one lane's full record and pulse_should_i_bid for a spend recommendation; use pulse_jobs for individual open listings. Read-only snapshot data, same answer for the same arguments, never changes state. Works without an API key on the free tier. Returns {count, methodologyVersion, lanes[]}; a filter value outside its enum is refused with the values that work, never answered with an empty list.

ParametersJSON Schema
NameRequiredDescriptionDefault
gradeNoAssay grade to filter by. A = a received settlement; B = payout evidence short of a received settlement; C = live but payout unproven; F = observed failure; Unknown = insufficient evidence. Omit for every grade.
accessNoWhether an agent can reach the lane at all: accessible or blocked. Omit for both.
categoryNoLane category, e.g. bounty, agent-marketplace, jobs-feed, agent-network. Free text matched exactly; omit for every category.
freshnessNoHow recently the lane was observed: fresh (<=24h), aging (<=7d), stale (<=30d), historical (older). Omit for every age.
automationNoWhat the lane's terms say about automated participation. Omit for every policy.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of lanes returned.
lanesYesLane summaries: slug, name, category, grade, gradeLabel, liveness, agentAccess, automation, payout, confidence, freshness, lastVerifiedAt, attempts, settlements.
methodologyVersionNoGrading methodology version the grades were produced under.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description still adds real behavioral value beyond that: free-tier/no-API-key operation, deterministic answers for identical arguments, the {count, methodologyVersion, lanes[]} return shape, and the specific refusal behavior for out-of-enum filter values. It stops short of describing pagination or result-size limits, which keeps it off a 5.

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

Conciseness5/5

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

Dense but front-loaded: purpose and the 'use this first' instruction lead, then routing to alternatives, then behavioral guarantees, then return shape. No sentence is redundant or padded.

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 five optional filter parameters, an output schema, and read-only annotations, the description covers everything an agent needs: when to use it, how filters compose, what comes back, and the failure mode for bad enum input. Nothing material is missing.

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% and each parameter (including enum semantics for grade, freshness, automation) is fully documented in the schema itself. The description only adds the aggregate rule that filters narrow the list and omitting all of them returns every lane, which the schema already implies with 'Omit for every grade' style notes. Baseline 3 applies when the schema does the heavy lifting.

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 ('List the agent-work lanes in the Market Pulse index') and enumerates the lane kinds, so the agent knows exactly what domain this covers. It also names three siblings (pulse_lane_detail, pulse_should_i_bid, pulse_jobs) and what each is for, making differentiation immediate.

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?

'Use this first to discover lane slugs and to shortlist where an autonomous agent can realistically earn' gives explicit when-to-use guidance with a stated goal. It also routes to alternatives by name with the condition that selects each, leaving nothing to inference.

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

pulse_methodologyGrading methodologyA
Read-onlyIdempotent
Inspect

Get the grading rules themselves: what each grade (A, B, C, F, Unknown) requires, how freshness is derived, how Unknown is handled, and the independence guarantee that money, sponsorship and subscriptions cannot change a grade. Use it to explain or defend a grade to a human, or to interpret the grade filter on pulse_lanes; it describes policy, not any one lane, so use pulse_lane_detail for a specific verdict. Takes no arguments, read-only and idempotent. Works without an API key on the free tier. Returns {version, grades, rules[], independence, snapshotAt, dataset}.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
rulesYesThe grading rules in order of precedence.
gradesYesLabel for each grade.
versionYesMethodology version.
independenceYesThe independence guarantee.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, but the description adds context the annotations cannot: no arguments required, and it works without an API key on the free tier, which matters for an agent deciding whether the call is viable. It also sketches the response shape, though that partially duplicates the output schema.

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 purpose and content, then routing, then operational notes. Efficient overall, though the enumerated return-shape clause duplicates the existing output schema and 'read-only and idempotent' restates annotations.

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?

An output schema exists, so return values need not be explained, and the description still names the key fields. Combined with the routing guidance and free-tier note, an agent has everything needed to select and invoke this tool correctly.

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

Parameters4/5

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

Zero parameters, so the baseline is 4; the description confirms 'takes no arguments', removing any ambiguity about whether inputs are expected. Nothing more can be added for a parameterless tool.

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+resource ('Get the grading rules themselves') and enumerates the content precisely: grade requirements for A/B/C/F/Unknown, freshness derivation, Unknown handling, and the independence guarantee. It also explicitly names the sibling it is not (pulse_lane_detail), so an agent can separate the policy tool from the per-lane verdict tool without reading either schema.

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?

Gives both sides of the routing decision: use it to explain or defend a grade to a human, or to interpret the grade filter on pulse_lanes; use pulse_lane_detail instead for a specific verdict. The condition selecting the alternative is named, not implied.

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

pulse_resource_detailGet one directory resourceA
Read-onlyIdempotent
Inspect

Get the full directory record for one resource: description, kind, capabilities, tags, pricing flag, GitHub stars, links and source. Use after pulse_resources when you have chosen an entry and need its links or metadata; do not use it for work lanes you want to judge (use pulse_lane_detail). Read-only and idempotent. Works without an API key on the free tier. Returns the resource object, with a verdict block when the resource is a graded lane. An unknown slug is refused with an error naming it.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesResource slug exactly as returned in the slug field of pulse_resources.

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYesResource kind.
nameYesDisplay name.
slugYesResource slug.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description nonetheless adds real operational context: it works without an API key on the free tier, returns a verdict block for graded lanes, and refuses an unknown slug with an error naming it. Return-format detail is somewhat redundant with the output schema.

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-loads the purpose, then routing guidance, then behavioral facts, then return/error behavior. Efficient and well ordered, though the field enumeration and return details are slightly dense for a one-parameter lookup.

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?

For a single-slug read tool with full annotations and an output schema, the description covers purpose, routing, auth tier, error behavior, and the odd verdict-block return. Nothing needed to call it correctly is missing.

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 coverage is 100% and there is a single parameter, so the schema fully documents the slug and its exact format. The description adds no syntax or constraint beyond 'one resource', so the 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 (Get) and resource (full directory record for one resource) and enumerates the returned fields (description, kind, capabilities, tags, pricing flag, stars, links, source). It explicitly distinguishes itself from pulse_resources and pulse_lane_detail, so an agent can route without opening schemas.

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?

Gives an explicit trigger ('Use after pulse_resources when you have chosen an entry and need its links or metadata') and an explicit exclusion with the named alternative ('do not use it for work lanes you want to judge (use pulse_lane_detail)'). Both when-to-use and when-not-to-use are covered.

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

pulse_resourcesSearch the agent directoryA
Read-onlyIdempotent
Inspect

Search the agent directory of models, MCP servers, frameworks, tools, platforms, work lanes and other resources, filtered by kind, category, capability, tags, free tier or GitHub stars and sorted as you choose. Use it to find what exists (for example free open-source MCP servers with 1000+ stars, or models that do video-gen); use pulse_resource_detail for one entry's full record and pulse_lanes when the question is about earning work rather than tooling. Filters combine with AND; omit all to list everything in the directory. Read-only and idempotent. Works without an API key on the free tier. Returns {count, kinds, resources[]}. An unknown kind, sort or argument is refused with the accepted values, never silently ignored.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFree-text match over name, slug, tags and capabilities.
capNoCapability tag a resource must have, e.g. video-gen, rag, tts.
tagNoComma-separated tags a resource must carry, all of them.
freeNotrue = only resources with a free tier; false = only paid ones. A JSON boolean, not the string "true".
kindNoResource kind to filter by; omit for every kind.
sortNoSort order; the sorts a kind supports are listed on its directory page.
categoryNoCategory within a kind, as shown on the directory page.
minStarsNoMinimum GitHub stars, for open-source entries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of resources returned.
kindsYesDirectory size per resource kind.
resourcesYesDirectory entries with slug, name, kind, description, tags, caps and links.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description still adds genuinely new behavioral facts: it works without an API key on the free tier, filters combine with AND, and invalid kind/sort/arguments are refused with the accepted values rather than silently ignored. That error-handling contract is exactly the kind of trait an agent cannot get from the annotations.

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?

Well front-loaded: purpose, then routing to siblings, then combination semantics and safety. Slightly over-packed — the 'Returns {count, kinds, resources[]}' clause duplicates the existing output schema and could be dropped without loss.

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?

For an 8-parameter, zero-required search tool with full schema coverage, enums, and an output schema, the description covers purpose, routing, filter combination, auth/free-tier behavior, and failure mode. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds the cross-parameter semantics the schema cannot express: 'Filters combine with AND' and 'omit all to list everything'. It does not add per-parameter syntax beyond the schema, so it falls short of a 5.

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?

Opens with a specific verb+resource ('Search the agent directory of models, MCP servers, frameworks...') and immediately scopes the sibling set by naming pulse_resource_detail and pulse_lanes with the conditions that select them. An agent can route correctly without opening any schema.

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?

Gives concrete use cases ('free open-source MCP servers with 1000+ stars', 'models that do video-gen'), explicitly excludes the two nearest alternatives by naming them, and states the degenerate case ('omit all to list everything'). 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.

pulse_should_i_bidShould an agent bid on this lane?A
Read-onlyIdempotent
Inspect

Get a one-call, evidence-backed recommendation on whether an autonomous agent should spend attempts on a lane: one of bid, bid_cautiously, probe_first, avoid or insufficient_evidence, with the rationale and caveats. Call pulse_lanes first to get the slug, then call this before committing an agent's time or an application to any lane; it is the decision tool, while pulse_lane_detail is the audit trail behind it. A recommendation reflects observed outcomes inside the snapshot window, never a guarantee, and Unknown means unmeasured rather than failed. Read-only and idempotent. Works without an API key on the free tier. Returns {lane, grade, confidence, freshness, methodologyVersion, recommendation, rationale, caveats[]}. An unknown lane is refused with an error naming it.

ParametersJSON Schema
NameRequiredDescriptionDefault
laneYesLane slug to judge, exactly as returned in the slug field of pulse_lanes, e.g. "algora".

Output Schema

ParametersJSON Schema
NameRequiredDescription
laneYesThe lane slug that was judged.
gradeYesThe lane's assay grade.
caveatsYesLimits on how far the recommendation can be trusted.
rationaleYesWhy, in one sentence.
recommendationYesWhat the evidence supports doing.

TDQS

A4.6/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: works without an API key on the free tier, an unknown lane is refused with an error naming it, and the recommendation reflects observed outcomes within the snapshot window rather than a guarantee. Repeating 'Read-only and idempotent' is redundant given readOnlyHint/idempotentHint, and enumerating the return shape is partly redundant with the output schema, so it stops short of 5.

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 decision and its output set, then prerequisites, then caveats; each sentence mostly earns its place. The return-shape enumeration duplicates the output schema and the read-only/idempotent line duplicates the annotations, costing a little tightness.

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?

Covers the prerequisite chain, the semantics of ambiguous outputs ('Unknown means unmeasured rather than failed'), error behavior, and the non-guarantee framing. With an output schema present, the description does not need to explain return values yet still clarifies their interpretation, so nothing an agent needs is missing.

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

Parameters4/5

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

With a single parameter at 100% schema coverage the baseline is already 3-4, and the description adds the provenance of the value ('the slug, exactly as returned in the slug field of pulse_lanes'), telling the agent where to source it. No format or validity nuance beyond that.

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 ('evidence-backed recommendation on whether an agent should spend attempts on a lane') and enumerates the exact possible outputs. It explicitly differentiates itself from siblings by naming pulse_lanes as the prerequisite and pulse_lane_detail as 'the audit trail behind it', so an agent can route correctly without opening any schema.

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?

Gives an explicit ordering rule ('Call pulse_lanes first to get the slug, then call this before committing an agent's time'), names the alternative decision tool and its role, and states the exclusion implicitly by framing this as the decision tool versus detail's audit role. 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.

pulse_statsIndex-wide countsA
Read-onlyIdempotent
Inspect

Get the index's headline numbers: lanes, graded lanes, grade distribution, probes, evidence records, attempts, settlements and settlement value, directory resources, live job count, and the snapshot date they describe. Use it to size the index, to quote a current figure with its date, or to check data freshness before trusting a grade; use pulse_lanes when you need the lanes themselves. Takes no arguments, read-only and idempotent. Works without an API key on the free tier. Returns a flat object including snapshotAt, methodologyVersion, lanes, gradedLanes, grades, settlements and evidenceRecords.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
lanesYesTotal lanes in the index.
gradesYesCount of lanes per grade.
snapshotAtYesDate the snapshot describes.
gradedLanesNoLanes with a grade other than Unknown.
settlementsNoRecorded settlements.
evidenceRecordsNoRecords in the evidence ledger.
methodologyVersionNoGrading methodology version.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: no API key required on the free tier, zero arguments, and the shape of the response (flat object with snapshotAt, methodologyVersion, etc.). It stops short of noting rate limits or caching of the snapshot, which would have made it a 5.

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?

Purpose and the returned figures are front-loaded, followed by usage and routing guidance. The long enumeration of metrics is justified because it tells the agent what it can quote, though it could be tightened with a grouping phrase.

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 an output schema present, the description need not document return values in full, yet it still names the key fields. It covers when to call, what it returns, auth requirements, and the sibling alternative — nothing material is missing for a zero-argument read tool.

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

Parameters4/5

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

The tool takes no parameters, so the baseline is 4 per the rubric. The description confirms this explicitly ('Takes no arguments'), which is the only param-related thing an agent needs to know.

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 ('Get the index's headline numbers') and enumerates exactly which figures are returned, including the snapshot date. It also explicitly distinguishes itself from the sibling pulse_lanes, so an agent can route between them without opening either schema.

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?

Gives three concrete use cases (sizing the index, quoting a dated figure, checking data freshness before trusting a grade) and names an alternative tool with the condition that selects it ('use pulse_lanes when you need the lanes themselves'). 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updates
    • Addedpulse_account
    • Changedpulse_evidence3 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Evidence record id to fetch on its own."New value: +"Evidence record id to fetch on its own, as found in a lane's evidence[] or a previous call. Takes precedence over lane."
      • changedInput schema / properties / lane / description
        Previous value: -"Lane slug: returns every evidence record linked to that lane."New value: +"Lane slug (from pulse_lanes): returns every evidence record linked to that lane."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "count": {
        +      "description": "Number of records returned.",
        +      "type": "integer"
        +    },
        +    "records": {
        +      "description": "Evidence records with id, kind, lane, source, captureMethod, capturedAt, summary, payloadSha256, previousChainHash and chainHash.",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "records"
        +  ],
        +  "type": "object"
        +}
    • Changedpulse_jobs3 fields changed
      • changedInput schema / properties / limit / description
        Previous value: -"Max listings to return (default 100)."New value: +"Max listings to return (default 100, maximum 500)."
      • changedInput schema / properties / status / description
        Previous value: -"Listing status; omit for any."New value: +"Listing status; omit for open listings."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "description": "Listings returned.",
        +      "type": "integer"
        +    },
        +    "listings": {
        +      "description": "Listings with lane, title, org, url, reward, bids, posted and status.",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "redacted": {
        +      "description": "Newer listings hidden by this tier's freshness window.",
        +      "type": "integer"
        +    },
        +    "tier": {
        +      "description": "Tier the call was served at: free, basic, pro, max or operator.",
        +      "type": "string"
        +    },
        +    "total": {
        +      "description": "Matching listings visible to this tier.",
        +      "type": "integer"
        +    },
        +    "upgradeUrl": {
        +      "description": "Pricing URL when listings were redacted, otherwise null.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "tier",
        +    "count",
        +    "total",
        +    "redacted",
        +    "listings"
        +  ],
        +  "type": "object"
        +}
    • Changedpulse_lane_detail2 fields changed
      • changedInput schema / properties / slug / description
        Previous value: -"Lane slug as returned by pulse_lanes, e.g. \"algora\" or \"jobforagent\"."New value: +"Lane slug exactly as returned in the slug field of pulse_lanes, e.g. \"algora\" or \"jobforagent\". Lowercase, hyphenated."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "evidence": {
        +      "description": "Evidence records linked to the lane.",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "grade": {
        +      "description": "Assay grade: A, B, C, F or Unknown.",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "Display name of the lane.",
        +      "type": "string"
        +    },
        +    "slug": {
        +      "description": "The lane slug.",
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "additionalProperties": true,
        +      "description": "Full verdict with reasons, liveness, access, automation, payout, confidence and freshness.",
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "slug",
        +    "grade",
        +    "verdict",
        +    "evidence"
        +  ],
        +  "type": "object"
        +}
    • Changedpulse_lanes10 fields changed
      • changedInput schema / properties / access / description
        Previous value: -"Whether an agent can reach the lane at all: accessible or blocked."New value: +"Whether an agent can reach the lane at all: accessible or blocked. Omit for both."
      • addedInput schema / properties / access / enum
        Added value: +[
        +  "accessible",
        +  "blocked"
        +]
      • changedInput schema / properties / automation / description
        Previous value: -"What the lane's terms say about automated participation."New value: +"What the lane's terms say about automated participation. Omit for every policy."
      • addedInput schema / properties / automation / enum
        Added value: +[
        +  "permitted",
        +  "silent",
        +  "restricted",
        +  "unknown"
        +]
      • changedInput schema / properties / category / description
        Previous value: -"Lane category, e.g. bounty, agent-marketplace, jobs-feed, agent-network."New value: +"Lane category, e.g. bounty, agent-marketplace, jobs-feed, agent-network. Free text matched exactly; omit for every category."
      • changedInput schema / properties / freshness / description
        Previous value: -"How recently the lane was observed: fresh (<=24h), aging (<=7d), stale (<=30d), historical (older)."New value: +"How recently the lane was observed: fresh (<=24h), aging (<=7d), stale (<=30d), historical (older). Omit for every age."
      • addedInput schema / properties / freshness / enum
        Added value: +[
        +  "fresh",
        +  "aging",
        +  "stale",
        +  "historical"
        +]
      • changedInput schema / properties / grade / description
        Previous value: -"Assay grade to filter by. A = a received settlement; F = observed failure; Unknown = insufficient evidence."New value: +"Assay grade to filter by. A = a received settlement; B = payout evidence short of a received settlement; C = live but payout unproven; F = observed failure; Unknown = insufficient evidence. Omit for every grade."
      • addedInput schema / properties / grade / enum
        Added value: +[
        +  "A",
        +  "B",
        +  "C",
        +  "F",
        +  "Unknown"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "count": {
        +      "description": "Number of lanes returned.",
        +      "type": "integer"
        +    },
        +    "lanes": {
        +      "description": "Lane summaries: slug, name, category, grade, gradeLabel, liveness, agentAccess, automation, payout, confidence, freshness, lastVerifiedAt, attempts, settlements.",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "methodologyVersion": {
        +      "description": "Grading methodology version the grades were produced under.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "lanes"
        +  ],
        +  "type": "object"
        +}
    • Changedpulse_methodology1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "grades": {
        +      "additionalProperties": true,
        +      "description": "Label for each grade.",
        +      "type": "object"
        +    },
        +    "independence": {
        +      "description": "The independence guarantee.",
        +      "type": "string"
        +    },
        +    "rules": {
        +      "description": "The grading rules in order of precedence.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "version": {
        +      "description": "Methodology version.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "version",
        +    "grades",
        +    "rules",
        +    "independence"
        +  ],
        +  "type": "object"
        +}
    • Changedpulse_resource_detail2 fields changed
      • changedInput schema / properties / slug / description
        Previous value: -"Resource slug as returned by pulse_resources."New value: +"Resource slug exactly as returned in the slug field of pulse_resources."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "kind": {
        +      "description": "Resource kind.",
        +      "type": "string"
        +    },
        +    "name": {
        +      "description": "Display name.",
        +      "type": "string"
        +    },
        +    "slug": {
        +      "description": "Resource slug.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "slug",
        +    "name",
        +    "kind"
        +  ],
        +  "type": "object"
        +}
    • Changedpulse_resources1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "count": {
        +      "description": "Number of resources returned.",
        +      "type": "integer"
        +    },
        +    "kinds": {
        +      "additionalProperties": true,
        +      "description": "Directory size per resource kind.",
        +      "type": "object"
        +    },
        +    "resources": {
        +      "description": "Directory entries with slug, name, kind, description, tags, caps and links.",
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "kinds",
        +    "resources"
        +  ],
        +  "type": "object"
        +}
    • Changedpulse_should_i_bid2 fields changed
      • changedInput schema / properties / lane / description
        Previous value: -"Lane slug to judge, as returned by pulse_lanes."New value: +"Lane slug to judge, exactly as returned in the slug field of pulse_lanes, e.g. \"algora\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "caveats": {
        +      "description": "Limits on how far the recommendation can be trusted.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "grade": {
        +      "description": "The lane's assay grade.",
        +      "type": "string"
        +    },
        +    "lane": {
        +      "description": "The lane slug that was judged.",
        +      "type": "string"
        +    },
        +    "rationale": {
        +      "description": "Why, in one sentence.",
        +      "type": "string"
        +    },
        +    "recommendation": {
        +      "description": "What the evidence supports doing.",
        +      "enum": [
        +        "bid",
        +        "bid_cautiously",
        +        "probe_first",
        +        "avoid",
        +        "insufficient_evidence"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "lane",
        +    "grade",
        +    "recommendation",
        +    "rationale",
        +    "caveats"
        +  ],
        +  "type": "object"
        +}
    • Changedpulse_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "evidenceRecords": {
        +      "description": "Records in the evidence ledger.",
        +      "type": "integer"
        +    },
        +    "gradedLanes": {
        +      "description": "Lanes with a grade other than Unknown.",
        +      "type": "integer"
        +    },
        +    "grades": {
        +      "additionalProperties": true,
        +      "description": "Count of lanes per grade.",
        +      "type": "object"
        +    },
        +    "lanes": {
        +      "description": "Total lanes in the index.",
        +      "type": "integer"
        +    },
        +    "methodologyVersion": {
        +      "description": "Grading methodology version.",
        +      "type": "string"
        +    },
        +    "settlements": {
        +      "description": "Recorded settlements.",
        +      "type": "integer"
        +    },
        +    "snapshotAt": {
        +      "description": "Date the snapshot describes.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "snapshotAt",
        +    "lanes",
        +    "grades"
        +  ],
        +  "type": "object"
        +}
  2. 1 tool update
    • Changedpulse_resources1 field changed
      • changedInput schema / properties / sort / enum
        Previous value: -[
        -  "confidence",
        -  "grade",
        -  "freshness",
        -  "name",
        -  "stars",
        -  "overall-score",
        -  "aa-index",
        -  "aa-coding",
        -  "terminal-bench",
        -  "swe-bench",
        -  "mmlu",
        -  "context",
        -  "price-asc",
        -  "models-desc",
        -  "items"
        -]New value: +[
        +  "confidence",
        +  "grade",
        +  "freshness",
        +  "name",
        +  "stars",
        +  "overall-score",
        +  "aa-coding",
        +  "terminal-bench",
        +  "swe-bench",
        +  "mmlu",
        +  "context",
        +  "price-asc",
        +  "models-desc",
        +  "items"
        +]
  3. 1 tool update
    • Changedpulse_resources1 field changed
      • changedInput schema / properties / sort / enum
        Previous value: -[
        -  "confidence",
        -  "grade",
        -  "freshness",
        -  "name",
        -  "stars",
        -  "overall-score",
        -  "terminal-bench",
        -  "swe-bench",
        -  "mmlu",
        -  "context",
        -  "price-asc",
        -  "models-desc",
        -  "items"
        -]New value: +[
        +  "confidence",
        +  "grade",
        +  "freshness",
        +  "name",
        +  "stars",
        +  "overall-score",
        +  "aa-index",
        +  "aa-coding",
        +  "terminal-bench",
        +  "swe-bench",
        +  "mmlu",
        +  "context",
        +  "price-asc",
        +  "models-desc",
        +  "items"
        +]
  4. 9 tool updates
    • First observedpulse_evidence
    • First observedpulse_jobs
    • First observedpulse_lane_detail
    • First observedpulse_lanes
    • First observedpulse_methodology
    • First observedpulse_resource_detail
    • First observedpulse_resources
    • First observedpulse_should_i_bid
    • First observedpulse_stats

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Agentic job board for too hard basket items, with independently verifiable participant reputation status that is earned via participant activity
    -
  • A
    license
    C
    quality
    B
    maintenance
    Persistent multi-agent work graph and document-state machine for contracts, specs, slices, evidence, verification, handoffs, and cost-aware AI execution.
    7
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Single source of truth and control for agent-operated companies, managing business state with deterministic policy enforcement, seat identity, and hash-chained audit trail.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides evidence-oriented MCP service for cryptographically identified agents, bounded public contracts, privacy-preserving records, and append-only audit.
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.