Skip to main content
Glama

tollbooth-oauth2-collector

Server Details

Unauthenticated OAuth2 callback collector for Tollbooth MCP services

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
lonniev/tollbooth-oauth2-collector
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 4 of 4 tools scored. Lowest: 3.5/5.

Server CoherenceA
Disambiguation4/5

The store/retrieve pair is clearly distinct, but collector_status and service_status both report status information and could be momentarily confused. Descriptions clarify their different purposes (pending codes vs. build info), so ambiguity is minimal.

Naming Consistency3/5

Tool names mix verb_noun patterns (retrieve_code, store_code) with noun_status patterns (collector_status, service_status). While all names are readable and follow snake_case, the lack of a consistent convention prevents a higher score.

Tool Count5/5

Four tools is well-scoped for an OAuth2 authorization code collector: two core operations for storing/retrieving codes and two status checks for operational visibility. Each tool earns its place without bloat.

Completeness5/5

The store/retrieve pair covers the full code lifecycle (store, one-time read with auto-delete). Status tools provide necessary operational visibility. No obvious gaps exist for the stated purpose.

Available Tools

4 tools
collector_statusAInspect

Health check — shows the number of pending authorization codes and TTL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

No annotations exist, so the description carries the full burden. It states what the tool shows but does not explicitly disclose read-only behavior, potential side effects, cost, or what TTL specifically refers to. The term 'health check' weakly implies safety, but the disclosure is minimal.

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?

The description is a single, front-loaded sentence that immediately identifies the tool as a health check and names the two key outputs. No wasted words.

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

Completeness4/5

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

Given zero parameters, an output schema, and a simple health-check purpose, the description names the essential pieces (pending authorization codes and TTL). It is mostly complete, though it could benefit from clarifying TTL and differentiating from 'service_status'.

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 has zero parameters, so the baseline is 4. The description correctly avoids parameter-related details since none exist.

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

Purpose4/5

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

The description uses a specific verb ('shows') and a specific resource ('pending authorization codes and TTL'), making the tool's purpose clear. It does not explicitly distinguish itself from the sibling 'service_status', but the named metrics set it apart.

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

Usage Guidelines3/5

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

The phrase 'Health check' implies a usage context, but there is no explicit guidance on when to prefer this over 'service_status' or other alternatives. The description provides a general idea but lacks when-to-use/when-not-to-use direction.

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

retrieve_codeAInspect

Retrieve a stored authorization code (one-time read, auto-deleted).

Called by the originating MCP server to pick up the code after the user has authorized in the browser. Returns the encrypted code which the caller decrypts using the same state token.

Args: state: The state token (patron npub) used during authorization.

Returns: Dict with code (encrypted) on success, or error if not found.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

No annotations are provided, so the description carries the full burden. It discloses the one-time read, auto-deletion, encryption, decryption requirement with the state token, and error behavior on missing code. This is substantial behavioral context beyond the schema.

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?

The description is compact and well-organized, with a front-loaded summary followed by Args/Returns sections. Every sentence carries meaningful information without repetition or fluff.

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 retrieval tool with an output schema, the description covers purpose, usage context, behavior, parameter semantics, and return format ('Dict with code (encrypted)... or error if not found'). This is complete for the tool's complexity.

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 description coverage is 0%, but the description adds meaning to the state parameter: 'The state token (patron npub) used during authorization.' This is more than the schema provides, though it could specify format or validation rules.

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?

The description states a specific verb ('Retrieve') and resource ('stored authorization code'), and adds one-time read/auto-deleted behavior. It clearly distinguishes itself from sibling store_code by identifying the caller and purpose.

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

Usage Guidelines4/5

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

Explicitly states when to use: 'Called by the originating MCP server to pick up the code after the user has authorized in the browser.' It gives clear context but does not explicitly name when-not-to-use or mention alternatives like store_code.

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

service_statusAInspect

Report the running build so a redeploy can be verified. Free.

Delegates to the SDK's canonical build_service_status — the single source of the service_status payload shape — so this collector reports the same envelope as every other DPYC service. The load-bearing field is build_info.fastmcp_cloud_git_commit_sha: the commit Horizon actually deployed. The post-merge deploy-verify probe reads it to confirm the live service redeployed the merged sha; with no service_status tool to probe, that sha reads as <none> and an otherwise-healthy deploy is flagged as "did not land".

The vault/courier/operator fields are False/empty by construction — this is an unauthenticated community utility with no operator runtime.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description fully discloses behavior: it delegates to the SDK's canonical implementation, reports the same envelope as other DPYC services, and explicitly states that vault/courier/operator fields are False/empty because this is an unauthenticated community utility with no operator runtime. It also explains the semantic importance of the build_info field.

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?

The description is well-structured, with the first sentence front-loading the purpose. The subsequent paragraphs add necessary context about deployment verification, the canonical envelope, and unauthenticated field behavior. It is slightly verbose for a zero-param tool, but each sentence earns its place by conveying meaningful details.

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 tool with an output schema, the description is comprehensive: it explains the tool's raison d'être (deploy verification), the canonical payload shape, the critical field's meaning, and the security context. It does not need to describe return values since an output schema exists, but it adds crucial context that schema alone cannot.

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 has zero parameters, so the description need not explain parameter semantics. The baseline for 0 params is 4, and the description appropriately focuses on output/payload meaning rather than input. It adds value by clarifying the load-bearing field, but this is output context, not parameter concerns.

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?

The description opens with a specific verb and resource: 'Report the running build so a redeploy can be verified.' It clearly states the core function and distinguishes the tool from siblings by describing it as the canonical, single-source service_status payload, which is useful for deploy verification rather than just generic status.

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

Usage Guidelines4/5

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

The description provides a clear use case: to probe the live service after a merge and confirm the deployed Git SHA. It warns that without this tool, deploy verification fails because the SHA reads as '<none>'. It does not explicitly mention alternatives (e.g., collector_status) or exclusions, but the context strongly implies when to use it.

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

store_codeAInspect

Store an encrypted OAuth2 authorization code.

Called by the serverless callback function after the browser redirect. The code is encrypted with SHA-256(state) before storage.

Args: code: The authorization code from the OAuth provider. state: The state token (patron npub) from the authorization request.

Returns: Dict with success key and a message.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
stateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries full transparency burden. It discloses a key behavioral trait: 'The code is encrypted with SHA-256(state) before storage,' which is important for understanding the tool's operation. It also states the return format. However, it does not mention idempotency, overwrite behavior, or potential side effects, which prevents a higher score.

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?

The description is well-organized: a clear one-sentence purpose, context, encryption detail, and a structured Args/Returns section. Every sentence contributes useful information, though it is slightly longer than absolutely necessary. It earns a 4 for efficiency and structure.

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

Completeness4/5

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

The tool is simple (2 string parameters, no nested objects), and the description covers the purpose, parameter semantics, call context, and return format. The presence of an output schema (as indicated) reduces the need to explain return values in detail. It misses potential error conditions, but overall it is complete enough for an agent to use it correctly.

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

Parameters5/5

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

Schema description coverage is 0%, but the description compensates fully with an Args section. It defines 'code' as 'The authorization code from the OAuth provider' and 'state' as 'The state token (patron npub) from the authorization request,' giving each parameter meaningful semantics beyond the bare string type in the schema.

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?

The description starts with a specific verb+resource: 'Store an encrypted OAuth2 authorization code.' This clearly states what the tool does and distinguishes it from the sibling 'retrieve_code.' The additional context about being called by the serverless callback function reinforces its role.

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

Usage Guidelines4/5

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

The description explicitly states the usage context: 'Called by the serverless callback function after the browser redirect.' This gives clear guidance on when to use the tool, though it does not explicitly mention alternatives or exclusions. That would warrant a 5, but the provided context is sufficient for most cases.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.