Unblocked
Server Details
Unblocked is the context layer for agentic software development.
- 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
Scored across 3 tools
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.
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.
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.
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 toolscontext_get_rulesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Optional task filter: code-review, code-generation, or code-questions | |
| paths | No | Optional 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_id | No | Optional rule ID to retrieve a specific rule | |
| language | No | Optional language filter (e.g., 'kotlin', 'python', 'typescript') | |
| max_rules | No | Optional maximum number of rules to return, highest severity first. Default 20; pass a larger value to get more. | |
| repo_name | Yes | Repository to retrieve rules for. Use 'owner/repo' form (e.g. 'unblocked/unblocked'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
TDQS
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.
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.
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.
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.
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.
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_urlsARead-onlyInspect
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//.
Notion on app.notion.com: pages such as https://app.notion.com//, https://app.notion.com/, and https://app.notion.com/p/.
Notion on notion.com: pages such as https://notion.com//, https://notion.com/, and https://notion.com/p/.
Notion on notion.so: pages such as https://notion.so//, https://notion.so/, and https://notion.so/p/.
Notion on www.notion.com: pages such as https://www.notion.com//, https://www.notion.com/, and https://www.notion.com/p/.
Notion on www.notion.so: pages such as https://www.notion.so//, https://www.notion.so/, and https://www.notion.so/p/.
Unblocked on docs.getunblocked.com: documents such as https://docs.getunblocked.com/.
Unblocked on getunblocked.com: threads such as https://getunblocked.com/dashboard/team//thread/.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | URLs to resolve and hydrate content from, one per line. | |
| verbose | No | Set to 'true' to include additional details like PR diffs and Jira comments regardless of URL count |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
TDQS
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.
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.
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.
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.
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.
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_researchARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What 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". | |
| effort | No | Search 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. | |
| instruction | No | How 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
| Name | Required | Description |
|---|---|---|
| text | Yes |
TDQS
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.
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.
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.
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.
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.
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 tool update
- Changed
context_get_rules5 fields changed- changed
Input schema / properties / max_rules / descriptionPrevious 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." - changed
Input schema / properties / max_rules / typePrevious value: -"string"New value: +"integer" - changed
Input schema / properties / paths / descriptionPrevious 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." - added
Input schema / properties / paths / itemsAdded value: +{ + "type": "string" +} - changed
Input schema / properties / paths / typePrevious value: -"string"New value: +"array"
3 tool updates
- Added
context_get_rules - Added
context_get_urls - Added
context_research
3 tool updates
- Removed
context_get_rules - Removed
context_get_urls - Removed
context_research
1 tool update
- Changed
context_get_rules1 field changed- added
Input schema / properties / max_rulesAdded value: +{ + "description": "Optional maximum number of rules to return, highest severity first. Omit for all rules.", + "type": "string" +}
1 tool update
- Changed
context_research1 field changed- changed
Input schema / properties / effort / descriptionPrevious 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."
1 tool update
- Changed
context_research1 field changed- changed
Input schema / properties / effort / descriptionPrevious 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."
3 tool updates
- First observed
context_get_rules - First observed
context_get_urls - First observed
context_research
Related MCP Connectors
UNBLOCK org-brain — shared memory and comms for human + agent teams. By Kaeva Labs.
The context platform for AI agents: code search, team decisions, and grounded project context.
The AI orchestration agent for modern software teams.
Intelligent context infrastructure for AI teams: knowledge graph, sessions, tasks, documents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceBlocker-aware decision layer for AI coding agents. Adds source-linked, time-sensitive blockers to AI technical choices — breaking changes, EOLs, lock-in, pricing shifts, and migration risk.4MIT
- AlicenseAqualityAmaintenanceYour agents, briefed. Not flooded. Self-hosted context compiler: git-backed team knowledge served to coding agents as token-budgeted bundles over MCP.731Apache 2.0
- AlicenseNot gradedqualityAmaintenanceBuild, ship and think in one living agentic workspace15AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceA unified context layer that connects your local data — repositories, documents, remote machines, and notes — to LLM interfaces through the Model Context Protocol (MCP).3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.