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.
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.
Tool Definition Quality
Average 4.3/5 across 4 of 4 tools scored. Lowest: 3.5/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.
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.
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.
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 toolscollector_statusAInspect
Health check — shows the number of pending authorization codes and TTL.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| state | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceAuthenticating reverse proxy for MCP servers providing credential isolation, OAuth2 token management, and composite tool aggregation.BSD Zero Clause
- Alicense-qualityCmaintenanceOAuth MCP server providing thin edge adapter access to the tickward public API via REST endpoints.AGPL 3.0
- Alicense-qualityBmaintenanceSecure MCP protocol proxy with OAuth2 + Dynamic Client Registration (DCR), JWT auth, RBAC, rate limiting, multi-server aggregation, and a monitoring/admin dashboard.11MIT
- Flicense-qualityDmaintenanceA simple MCP server with OAuth 2.0 authentication for testing OAuth support in mcp-cli.