Skip to main content
Glama

Server Details

Unblocked is the context layer for agentic software development.

Ownership verified
Status
Healthy
Uptime
78.3% over 79 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
unblocked/skills
GitHub Stars
14
ChatGPT
–
Claude
Unblocked

TDQS

A3.8/5.0

Scored across 3 tools

Disambiguation4/5

Each tool occupies a fairly distinct slot: repository conventions (context_get_rules), deterministic URL hydration (context_get_urls), and cross-source semantic synthesis (context_research). The descriptions explicitly draw the main boundary ('known URL in hand -> use context_get_urls, not research'), though rules-vs-research and urls-vs-research still overlap enough that an agent could occasionally pick the wrong entry point.

Naming Consistency4/5

All three names share the 'context_' namespace prefix, which makes the family obvious. Two follow the verb_noun pattern (context_get_rules, context_get_urls) but the third drops the verb (context_research), a minor inconsistency rather than a confusing one.

Tool Count4/5

Three tools is lean but justified: the server exposes exactly the three retrieval primitives (rules, URLs, synthesis) it advertises, with no redundant entries. It sits near the thin end of the scale but each tool earns its place for a focused read-only context server.

Completeness4/5

For a read-only institutional-context server the lifecycle is well covered: retrieve conventions, hydrate known artifacts from GitHub/Notion/Unblocked, and search across all indexed sources for the 'why'. Minor gaps remain—no direct code search/list-repos primitive, and URL hydration only handles an enumerated set of patterns (explicitly falling back to context_research otherwise).

Available Tools

3 tools
context_get_rulesA
Read-only
Inspect

Retrieve repository coding rules and conventions. Returns the top max_rules rules for a repository by severity (default 20), or a specific rule by ID. Rules are extracted from CLAUDE.md, AGENTS.md, .cursorrules, CONTRIBUTING.md, and other convention files in the repository. Large repos can have hundreds of rules. Narrow the result with paths (the files you are working on) or language, or pass a larger max_rules to get more.

NameRequiredDescriptionDefault
taskNoOptional task filter: code-review, code-generation, or code-questions
pathsNoOptional repo-relative file paths (the files being reviewed, generated, or asked about) to scope rules to. A rule extracted from <dir>/CLAUDE.md (or similar) is returned only when at least one path is inside <dir>/. Rules from repo-root convention files always apply. Omit for repo-wide.
rule_idNoOptional rule ID to retrieve a specific rule
languageNoOptional language filter (e.g., 'kotlin', 'python', 'typescript')
max_rulesNoOptional maximum number of rules to return, highest severity first. Default 20; pass a larger value to get more.
repo_nameYesRepository to retrieve rules for. Use 'owner/repo' form (e.g. 'unblocked/unblocked').

Output Schema

NameRequiredDescription
textYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description usefully adds that results are severity-ordered, that a specific rule can be fetched by ID, and that root-level convention files always apply — context not present in 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?

Purpose is front-loaded in the first sentence, followed by return behavior, sources, and narrowing advice in a logical order. Mild redundancy with the schema descriptions for paths, language, and max_rules costs it a point.

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?

With an output schema present and full parameter coverage, the description supplies what remains valuable: rule sources, default result count, severity ordering, and scaling advice for large repos. Nothing critical is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (including the nuanced paths/language/rule_id semantics) is already fully documented in the schema. The description's restatement of severity ordering and narrowing options adds little beyond that baseline.

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?

States a specific verb (Retrieve) and resource (repository coding rules and conventions), and names the exact source files (CLAUDE.md, AGENTS.md, .cursorrules, CONTRIBUTING.md). The resource is distinct from siblings context_get_urls and context_research, though the description never explicitly differentiates itself from them.

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?

Gives concrete operational guidance: default max_rules of 20, use paths/language to narrow, pass a larger max_rules when needed, and note that large repos can have hundreds of rules. It lacks explicit 'do not use this when...' exclusions or a comparison to sibling tools, keeping it at 4.

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

context_get_urlsA
Read-only
Inspect

Retrieve and hydrate content from supported URLs. Provide one URL per line. Supports the following URL patterns: - GitHub on github.com: PRs, issues, and file blobs such as https://github.com///pull/, https://github.com///issues/, and https://github.com///blob//.

NameRequiredDescriptionDefault
urlsYesURLs to resolve and hydrate content from, one per line.
verboseNoSet to 'true' to include additional details like PR diffs and Jira comments regardless of URL count

Output Schema

NameRequiredDescription
textYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is covered. The description adds that content is 'hydrated' and that extra details (PR diffs, Jira comments) can be pulled, but says nothing about auth requirements, rate limits, or what happens on partial failures in a multi-line batch.

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?

The intent and format instruction are front-loaded and clear, but four nearly identical Notion lines (notion.com, www.notion.com, notion.so, www.notion.so) plus three app.notion.com variants pad the text substantially without adding decision-relevant information.

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

Completeness3/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 described. What's missing is behavioral edge-case guidance: how unsupported or mixed URL batches are handled and whether a single bad URL fails the whole call — material for a batch, open-world fetch tool.

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 both parameters are already documented, including the 'verbose' flag with its PR-diff/Jira-comment behavior. The description repeats 'one URL per line' but adds no new meaning beyond the schema, so the baseline 3 applies.

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?

States a specific verb pair ('Retrieve and hydrate') and resource ('content from supported URLs'), and the pattern list makes the supported scope concrete. It does not explicitly differentiate itself from siblings context_get_rules or context_research, so it stops short of a 5.

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 enumerated URL patterns effectively define when this tool applies versus when it won't (any URL outside GitHub/Notion/Unblocked domains). However, it never names an alternative tool for unsupported cases or explains what to do when a URL doesn't match.

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

context_researchA
Read-only
Inspect

Retrieve institutional context that code search cannot provide — WHY, WHO, WHEN behind the code. Primary Unblocked research tool; reach for it first for synthesis across sources.

One call searches every indexed source: documentation (Notion), code and code history (GitHub), PRs.

When to call

Call proactively at the start of any non-trivial task, and whenever you hit an unknown. Do not wait for the user to ask.

  • Planning, investigation, refactor, migration, or feature work. Fire in the same tool block as your first Explore/Grep/Read calls — complementary, zero latency cost.

  • "Why does this exist" or "why is it done this way" questions. Code reading cannot answer these.

  • Behavior doesn't match the code. Check history before assuming the code is wrong.

  • Unfamiliar class, service, endpoint, flag, config key, or error string while reading or editing.

  • Before writing new code. Check whether the pattern, bug, fix, helper, or abstraction already exists.

  • Incident, alert, or outage. Connect affected systems to recent changes and prior fix patterns.

  • Filtered activity lookups. "PRs merged last week in auth service", "open incidents tagged ingestion", "Jira epics in PROJ from Q1".

  • Ambiguous user requests. Find the team's prior framing before guessing.

  • Before recommending a solution. Verify the approach hasn't been tried, rejected, or superseded.

When NOT to call

  • Known URL in hand. Use context_get_urls — faster, deterministic, returns full hydrated content. Fall back here only if the URL pattern is unsupported.

If unsure, call. Missed context is expensive; recall misses are cheap.

NameRequiredDescriptionDefault
queryYesWhat to search for — the topic, entities, urls, and any hard filters (date range, author, status) that constrain which documents match. Write a complete phrase rather than bare keywords — "How does the authentication service handle token refresh?" not "auth token refresh".
effortNoSearch effort: low, medium, or high. Use "low" by default — it's the fastest and cheapest, and sufficient for targeted lookups that point at a specific entity, URL, file, or question. Use "medium" for simple research tasks, or when the query does not translate cleanly to a single entity or URL and some exploration is needed. Use "high" for planning tasks and broad or cross-system investigations, where wider coverage reduces the risk of missing prior work, rejected approaches, or related constraints. Do not use "high" for a simple lookup of one entity, URL, file, ticket, or error: it runs several times as many searches as "medium" and is noticeably slower.
instructionNoHow to evaluate the matches — relevance criteria, domain priorities, or selection guidance that shapes which results surface and in what order, without changing what is searched. E.g., "Prefer architecture decision records over API reference docs".

Output Schema

NameRequiredDescription
textYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: one call fans out across Notion docs, GitHub code and history, and PRs; it can run concurrently with Explore/Grep at no added latency; and recall misses are framed as cheap versus expensive missed context. It does not mention auth requirements, source freshness/index coverage limits, or rate limits, which keeps it short of 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?

Front-loaded with purpose and the sibling distinction, then cleanly sectioned under 'When to call' / 'When NOT to call'. Some bullets are near-duplicates (multiple 'before you write code / before you recommend' items) and could be consolidated, but nearly every line carries actionable routing signal rather than 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?

An output schema exists, so return format need not be explained; the description instead covers the sources searched, the proactive-call policy, cost/latency tradeoffs, and the sibling handoff. For a three-parameter research tool with annotations and an output schema, nothing an agent needs in order to decide to call it 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 the effort parameter already carries detailed low/medium/high guidance, so the schema does the heavy lifting. The description only indirectly touches parameters via 'filtered activity lookups' (hinting the query can embed date/author/status filters); it adds no syntax or semantics the schema lacks, 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 and resource (retrieve institutional context) and names the exact gap it fills — WHY/WHO/WHEN that code search cannot answer. It also declares itself the primary research tool, which immediately positions it against the two siblings.

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?

Provides an unusually complete when-to-call list (planning, 'why does this exist', behavior/code mismatch, unfamiliar symbols, before writing code, incidents, filtered lookups, ambiguous requests) and an explicit when-NOT-to-call rule that routes known URLs to context_get_urls instead. The 'if unsure, call' tiebreaker removes the last ambiguity.

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. 1 tool update
    • Changedcontext_get_rules5 fields changed
      • changedInput schema / properties / max_rules / description
        Previous value: -"Optional maximum number of rules to return, highest severity first. Omit for all rules."New value: +"Optional maximum number of rules to return, highest severity first. Default 20; pass a larger value to get more."
      • changedInput schema / properties / max_rules / type
        Previous value: -"string"New value: +"integer"
      • changedInput schema / properties / paths / description
        Previous value: -"Optional repo-relative file paths to scope rules to, one per line. A rule extracted\n            from <dir>/CLAUDE.md (or similar) is returned only when at least one path is inside\n            <dir>/. Rules from repo-root convention files always apply. Pass the files being\n            reviewed, generated, or asked about. Omit for repo-wide."New value: +"Optional repo-relative file paths (the files being reviewed, generated, or asked\n            about) to scope rules to. A rule extracted from <dir>/CLAUDE.md (or similar) is\n            returned only when at least one path is inside <dir>/. Rules from repo-root convention\n            files always apply. Omit for repo-wide."
      • addedInput schema / properties / paths / items
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / properties / paths / type
        Previous value: -"string"New value: +"array"
  2. 3 tool updates
    • Addedcontext_get_rules
    • Addedcontext_get_urls
    • Addedcontext_research
  3. 3 tool updates
    • Removedcontext_get_rules
    • Removedcontext_get_urls
    • Removedcontext_research
  4. 1 tool update
    • Changedcontext_get_rules1 field changed
      • addedInput schema / properties / max_rules
        Added value: +{
        +  "description": "Optional maximum number of rules to return, highest severity first. Omit for all rules.",
        +  "type": "string"
        +}
  5. 1 tool update
    • Changedcontext_research1 field changed
      • changedInput schema / properties / effort / description
        Previous value: -"Search effort: low, medium, or high. Use \"low\" by default — it's the fastest and cheapest,\nand sufficient for targeted lookups that point at a specific entity, URL, file, or question.\nUse \"medium\" for simple research tasks, or when the query does not translate cleanly to a\nsingle entity or URL and some exploration is needed. Use \"high\" for planning tasks and broad or\ncross-system investigations, where wider coverage reduces the risk of missing prior work, rejected\napproaches, or related constraints. Do not use \"high\" for a question about one entity, URL, file,\nticket, or error, even during a planning task: it runs several times as many searches as \"medium\"\nand is noticeably slower."New value: +"Search effort: low, medium, or high. Use \"low\" by default — it's the fastest and cheapest,\nand sufficient for targeted lookups that point at a specific entity, URL, file, or question.\nUse \"medium\" for simple research tasks, or when the query does not translate cleanly to a\nsingle entity or URL and some exploration is needed. Use \"high\" for planning tasks and broad or\ncross-system investigations, where wider coverage reduces the risk of missing prior work, rejected\napproaches, or related constraints. Do not use \"high\" for a simple lookup of one entity, URL, file,\nticket, or error: it runs several times as many searches as \"medium\" and is noticeably slower."
  6. 1 tool update
    • Changedcontext_research1 field changed
      • changedInput schema / properties / effort / description
        Previous value: -"Search effort: low, medium, or high. Use \"low\" by default — it's the fastest and cheapest,\nand sufficient for targeted lookups that point at a specific entity, URL, file, or question.\nUse \"medium\" for simple research tasks, or when the query does not translate cleanly to a\nsingle entity or URL and some exploration is needed. Use \"high\" for broad or cross-system\ninvestigations — highly recommended during planning tasks, where wider coverage reduces the\nrisk of missing prior work, rejected approaches, or related constraints."New value: +"Search effort: low, medium, or high. Use \"low\" by default — it's the fastest and cheapest,\nand sufficient for targeted lookups that point at a specific entity, URL, file, or question.\nUse \"medium\" for simple research tasks, or when the query does not translate cleanly to a\nsingle entity or URL and some exploration is needed. Use \"high\" for planning tasks and broad or\ncross-system investigations, where wider coverage reduces the risk of missing prior work, rejected\napproaches, or related constraints. Do not use \"high\" for a question about one entity, URL, file,\nticket, or error, even during a planning task: it runs several times as many searches as \"medium\"\nand is noticeably slower."
  7. 3 tool updates
    • First observedcontext_get_rules
    • First observedcontext_get_urls
    • First observedcontext_research

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.