AI Workstation Open Source Intelligence MCP Server
This server provides read-only, evidence-backed open-source AI project research via nine MCP tools, with no server-side model execution.
Search AI projects – Find projects from explicit requirements and typed constraints.
Get project facts – Retrieve current evidence-backed public facts for a specific project.
Get license evidence – Access observed license evidence (technical evidence, not legal advice).
Compare projects – Compare two to five projects in a concrete decision context.
Find alternatives – Discover verified alternatives while preserving hard constraints.
Compose AI stack – Build candidate open-source AI stacks and expose unknown compatibility.
Get radar overview – Discover current rankings, collections, categories, scenarios, and filters.
Browse radar projects – Browse/filter rankings, collections, categories, scenarios, topics, and deployments.
Browse radar skills – Browse/filter the Radar Skills library or open a Skill by ID.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AI Workstation Open Source Intelligence MCP ServerCompare RAGFlow and Dify for self-hosted RAG"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI Open Source Intelligence
One Skill. Nine live read-only Radar tools. Evidence-backed open-source AI research without a second server-side model call.
简体中文 · Product page · AI Open Source Radar · Quickstart
AI Open Source Intelligence is the Skills/MCP product layer for AI Open Source Radar.

Product shape
User in ChatGPT / Codex / compatible host
|
v
1 unified product Skill
|
v
9 read-only MCP tools
|
v
AI Workstation public RadarThe user does not choose separate research/comparison/stack Skills. The single Skill routes the task internally.
The host model performs natural-language reasoning and synthesis. The AI Workstation server provides data/evidence only on this product path.
Related MCP server: repolens
One active Skill
ai-open-source-intelligenceIt handles:
browsing rankings, collections, categories, scenarios and the Radar Skills library;
finding projects from deployment, privacy, integration, budget and license requirements;
verifying named-project facts and license evidence;
comparing two to five projects for a concrete use case;
finding alternatives while preserving hard requirements;
planning candidate open-source AI stacks and exposing unverified compatibility.
The only product Skill is packaged from:
skills/ai-open-source-intelligence/SKILL.md
skills/ai-open-source-intelligence/agents/openai.yamlagents/openai.yaml makes the Skill's dependency on the canonical
ai_open_source_intelligence Hosted MCP explicit while keeping automatic
invocation enabled. This is the Skill-level dependency contract; .mcp.json
is the matching Plugin-level connection contract.
The previous split research/comparison/stack Skill files are removed from the current product and distribution bundle.
Nine standard MCP tools
search_ai_projects
get_project_facts
get_license_evidence
compare_ai_projects
find_alternatives
compose_ai_stack
get_radar_overview
browse_radar_projects
browse_radar_skillsAll nine are read-only. They do not execute or install third-party repository code.
No AI Workstation server-model execution
This is a hard product boundary for the current release.
The Hosted MCP exposes no Premium model tool, no checkout tool and no runtime OAuth/Premium switch. Requirement-based selection calls the public Radar selector with:
use_model=falseTherefore an ordinary Skill/MCP workflow is:
ChatGPT/Codex host model
-> chooses/read tools
-> AI Workstation public Radar data/evidence
-> host model synthesizes the final answerIt is not:
host model -> AI Workstation model -> second model billIf member-linked server-model capabilities are added later, they must ship as a new reviewed product version rather than being enabled through a hidden environment variable.
Evidence model
Every tool result separates:
verified facts — source-backed observations that crossed the evidence boundary;
recommendations — host-model/rules analysis;
unknowns — unavailable or unverified information;
risks — license, maintenance, deployment, security and integration limits.
A value in data is not automatically a verified fact. License evidence is deliberately stricter and is technical evidence, not legal advice.
Requirement tools publish the actual typed constraint contract through MCP:
{"id":"web_ui","value":true,"polarity":"required"}Formal matches are revalidated against project-detail evidence. README excerpts
may directly verify narrow Docker, self-hosting, browser UI and low/no-code
claims; unresolved hard requirements become near-match blockers. A License label
is exposed only as observed_license_label until a direct LICENSE-family source
supports a verified license fact. Response observation time and evidence-source
freshness are reported separately.
Official resources in results
MCP tool results include canonical, non-tracking publisher links under:
data.official_resourceswith:
AI Workstation — https://aiworkstation.cn/
AI Open Source Radar — https://aiworkstation.cn/githubai/
this open-source project — https://github.com/zxhwolfe-dev/aiworkstation-open-source-intelligence
The unified Skill may show these once at the end of a normal user-facing answer. They are kept separate from verified facts so publisher attribution never changes a research conclusion.
Hosted MCP
Canonical endpoint:
https://mcp.aiworkstation.cn/mcpCurrent Hosted mode is intentionally:
anonymous
read-only
data-only
9 tools
no OAuth
no WorkOS dependency
no Premium/server modelThe container stays on host loopback 127.0.0.1:8001 behind Nginx/TLS.
Anonymous abuse controls
The gateway uses two per-IP request windows plus a connection cap:
short-window:
60 requests/minute, burst30;sustained:
10 requests/minute, burst300;concurrent connections:
10per IP;MCP request body:
256 KBmaximum;unrelated paths on the dedicated MCP hostname return
404.
This is intentionally request-based rather than token-based because the nine data tools do not consume AI Workstation model tokens.
Use it now
The published v0.3.3 Plugin packages the unified Skill and the production
Hosted MCP configuration together. Codex and the ChatGPT desktop Codex host can
install both from one version-pinned marketplace entry. The public ChatGPT
directory listing is still pending review. Today:
Codex / ChatGPT desktop users can install the complete repository Plugin;
ChatGPT web users can register
https://mcp.aiworkstation.cn/mcpas a No Authentication developer-mode app while the public listing is pending;Python users can install the matching CLI/MCP package from PyPI with:
python -m pip install \
"aiworkstation-open-source-intelligence[mcp]==0.3.3"See the Quickstart for exact ChatGPT, Codex and Python
steps and the v0.3.3 Release
for signed-off assets and checksums. The immutable v0.3.0 archive remains the
earlier Skills-only artifact; the complete Plugin uses the current v0.3.3 patch
identity rather than replacing it.
Local development
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[mcp]"Offline fixture data:
OSI_PROVIDER=mock osi-mcpLive public Radar data:
OSI_PROVIDER=http \
AIWORKSTATION_RADAR_BASE_URL=https://aiworkstation.cn \
osi-mcpHosted configuration check requires an exact candidate identity:
OSI_PROVIDER=http \
OSI_HOSTED_ACCESS_MODE=public \
OSI_RELEASE_COMMIT=<exact-40-char-sha> \
OSI_IMAGE_COMMIT=<same-exact-40-char-sha> \
osi-mcp-hosted --check-configSetting OSI_HOSTED_ACCESS_MODE=oauth fails closed in the current release.
Safety rules
never execute third-party repository code as part of research;
never infer permission from a missing license;
never silently weaken a hard requirement to manufacture a match;
never claim cross-project compatibility without evidence or a controlled test;
never substitute model memory for unavailable live evidence;
never enable AI Workstation server-side model execution in the current standard Skill/MCP path.
Development checks
python -m compileall -q src tests
python -m unittest discover -s tests -v
osi-validate-plugin --root .
osi-readiness --root .CI covers Python 3.10 and 3.12, deterministic Skill packaging, MCP round trips, data-only Hosted configuration and container packaging.
License
The public repository is licensed under Apache-2.0. That does not grant rights to private AI Workstation databases, unpublished datasets, credentials, infrastructure or trademarks.
Available Tools
9 toolsbrowse_radar_projectsCRead-onlyIdempotentInspect
Browse rankings, collections, categories, scenarios, topics or filtered projects.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | ||
| layer | No | ||
| limit | No | ||
| query | No | ||
| topic | No | ||
| locale | No | en | |
| offset | No | ||
| license | No | ||
| ranking | No | ||
| category | No | ||
| scenario | No | ||
| use_case | No | ||
| collection | No | ||
| deployment | No | ||
| request_id | No | ||
| radar_topic | No | ||
| github_topic | No | ||
| resource_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the set of browseable facets but does not disclose pagination behavior, default limit, or how filters combine; given the strong annotation coverage, this is adequate but not exceptional.
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 concise and free of fluff, but it is under-specified for the complexity of the tool. A single short phrase cannot meaningfully describe an 18-parameter browsing interface, so the brevity comes at the cost of usefulness.
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 presence of an output schema reduces the need to describe return values, but the description still omits critical context: how filters relate, which fields are mutually exclusive, what the default behavior is, and what 'filtered projects' means. For a read-only exploratory tool with this many parameters, the definition is incomplete.
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%, so the description must compensate for 18 undocumented parameters. It only maps loosely to a few of them (ranking, collection, category, scenario, topic) and offers nothing about value formats, defaults, combinations, or locale/limit behavior. This is far below what is needed for an 18-parameter tool.
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 ('Browse') and identifies the resource ('radar projects'), while enumerating the main browse dimensions: rankings, collections, categories, scenarios, topics, and filtered projects. It does not explicitly contrast itself with sibling tools like browse_radar_skills, but the word 'projects' makes the primary resource clear.
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 gives no guidance on when to use this tool versus alternatives such as search_ai_projects, get_radar_overview, or browse_radar_skills. The word 'Browse' weakly implies exploratory use, but there are no explicit conditions, exclusions, or comparisons to help an agent select among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browse_radar_skillsBRead-onlyIdempotentInspect
Browse/filter the Radar Skills library or open one Skill by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| sort | No | ||
| limit | No | ||
| query | No | ||
| locale | No | en | |
| offset | No | ||
| license | No | ||
| category | No | ||
| skill_id | No | ||
| request_id | No | ||
| installable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the useful behavioral distinction between browsing/filtering and opening one Skill by ID, but it does not describe pagination, filtering semantics, or any side effects beyond what annotations cover.
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 one compact sentence, front-loads the primary action, and uses the 'or' construction to expose the second mode without redundancy.
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 tool with 11 loosely documented parameters and no usage guidance, the description is too thin. The output schema and annotations reduce the burden for return values and safety, but an agent still cannot reliably know how to form filtering/query parameters or choose between this and sibling tools.
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?
Input schema has 0% description coverage across 11 parameters. The description only provides high-level meaning: some parameters act as filters and skill_id opens a single Skill. It does not explain query, category, license, sort, limit, offset, locale, installable, kind, or request_id, leaving the agent to guess their semantics.
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 action ('Browse/filter the Radar Skills library') and a distinct alternative mode ('open one Skill by ID'). This clearly identifies the resource and scope and differentiates it from project-focused siblings such as browse_radar_projects.
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?
There is no explicit guidance on when to use this tool instead of siblings like search_ai_projects or browse_radar_projects. The description implies a skills-library context but does not state exclusions or the conditions that should route an agent to an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_ai_projectsARead-onlyIdempotentInspect
Compare two to five projects in one explicit decision context.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | en | |
| context | No | ||
| criteria | No | ||
| request_id | No | ||
| project_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the 2-5 project limit and decision-context framing, but does not explain output behavior or what happens with invalid counts or missing context.
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 with no filler. It is concise and to the point, though 'explicit decision context' is slightly vague and could be more concrete without losing brevity.
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 output schema and annotations cover return values and safety, so those gaps are acceptable. However, the sparse description leaves key parameters like criteria and context under-specified, making it harder for an agent to know how to construct a useful comparison request.
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?
With 0% schema description coverage, the description must compensate. It adds meaning for project_ids (2-5 limit) and hints at context, but criteria, locale, and request_id are left completely unexplained. This is a meaningful gap for an agent deciding how to fill those parameters.
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 names a specific verb ('Compare'), a bounded resource ('two to five projects'), and a decision-oriented scope ('one explicit decision context'). This clearly distinguishes it from sibling tools like search_ai_projects and find_alternatives.
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 gives a clear context for use: comparing a small set of projects within one decision frame. It does not explicitly mention alternatives or when-not-to-use conditions, but the comparison scope is specific enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose_ai_stackCRead-onlyIdempotentInspect
Compose a candidate open-source AI stack and expose unknown compatibility.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | en | |
| request_id | No | ||
| constraints | No | ||
| business_goal | Yes | ||
| existing_stack | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds 'candidate' and 'unknown compatibility', which suggests the result is provisional and highlights compatibility gaps, but it does not explain what the tool returns, how existing_stack or constraints affect the result, or what 'unknown compatibility' concretely means.
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, tight sentence with the core action front-loaded. The second clause is somewhat vague, but there is no redundancy or wasted wording.
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?
Although an output schema exists and annotations provide a safety profile, the description still leaves critical context missing: parameter semantics are absent, usage versus sibling tools is not addressed, and the meaningful phrase 'unknown compatibility' is undefined. For a tool with five parameters and substantial optional inputs, this is not enough for reliable 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 0%, so the description carries the full burden for parameter meaning, but it does not mention business_goal, constraints, existing_stack, locale, or request_id. Only the phrase 'compose a stack' implicitly maps to business_goal; the optional inputs remain semantically unexplained beyond their names.
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 action ('Compose') and resource ('a candidate open-source AI stack'), and the 'expose unknown compatibility' clause adds a distinct output focus. It is clear enough to separate this from siblings like search_ai_projects or compare_ai_projects, though it does not explicitly contrast with 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?
There is no guidance about when to choose compose_ai_stack over the sibling tools such as search_ai_projects, compare_ai_projects, or find_alternatives. The phrase 'candidate stack' weakly implies a use case, but no context, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_alternativesCRead-onlyIdempotentInspect
Find verified candidate alternatives while preserving constraints.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | en | |
| project_id | Yes | ||
| request_id | No | ||
| constraints | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the description does not need to cover safety. It adds modest behavioral value by stating results are 'verified' and that constraints are 'preserving,' which suggests a non-relaxing, evidence-based result set. It does not contradict the annotations, and it offers no extra disclosure about pagination, output shape, or edge cases.
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 short sentence with no filler or redundancy, and the core action is front-loaded. It is concise but somewhat terse, sacrificing detail that would help an agent select it confidently among siblings. Still, on the conciseness dimension it is well structured.
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?
Despite having an output schema and useful annotations, the description lacks usage guidance, parameter clarification, and sibling differentiation. The tool has four parameters, zero schema description coverage, and several closely related siblings, so more context is needed for reliable selection and invocation. The current description is too thin to be considered complete.
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%, so the description bears the burden of explaining parameters, but it only hints at 'constraints' and does not explain project_id, locale, request_id, or the constraints structure. The word 'constraints' maps to one parameter, but the other three are left entirely to their names and schema types. This is insufficient compensation for the lack of schema descriptions.
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 ('Find') and resource ('verified candidate alternatives') and adds a meaningful qualifier ('preserving constraints'). It is not a tautology and gives the agent a basic sense of the tool's function. However, it does not explicitly say what the alternatives are for (e.g., projects) or how it differs from siblings like compare_ai_projects, so it is clear but not fully differentiated.
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 implies the tool should be used when constraints need to be preserved, but it gives no explicit when-to-use or when-not-to-use guidance. It does not name alternatives like search_ai_projects or compare_ai_projects, nor does it state which sibling to choose instead. An agent is left to infer the appropriate context from the name and a single phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_license_evidenceBRead-onlyIdempotentInspect
Get observed license evidence; the result is not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | en | |
| project_id | Yes | ||
| request_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and destructiveHint. The description adds contextual value by noting the evidence is 'observed' and that the result is not legal advice. It does not contradict any annotations, but it adds no further behavioral detail such as completeness guarantees or limitations.
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 very short and every word earns its place. The key action and the important 'not legal advice' caveat are present. It is appropriately sized for a simple read-only tool, though it does lean toward under-specification rather than deliberate completeness.
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 output schema exists, so return values are covered by structured data, and annotations cover the safety profile. However, the description lacks usage context and parameter semantics, so an agent has to infer when to select this tool among the siblings and what the parameters mean.
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%, so the description must compensate for parameter meaning, but it does not. project_id, locale, and request_id are never explained. The parameter names and enum are somewhat self-explanatory, but the description adds no semantic value beyond 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 uses a specific verb and resource: 'Get observed license evidence.' The word 'observed' adds useful precision, and the annotation title clarifies it is project-scoped. However, it does not explicitly differentiate this tool from siblings like get_project_facts, 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 description provides no guidance about when to use this tool versus alternatives such as get_project_facts or browse_radar_projects. The disclaimer 'not legal advice' is a caveat, not usage guidance. No exclusions or routing conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_factsARead-onlyIdempotentInspect
Get current evidence-backed public facts for one project.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | en | |
| project_id | Yes | ||
| request_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, open-world, idempotent, and non-destructive behavior. The description adds meaningful context by describing facts as 'current', 'evidence-backed', and 'public', which clarifies freshness, reliability, and visibility beyond the annotation booleans.
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, tight sentence with no filler. The verb and object are front-loaded, and every word contributes meaning.
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 simple read-only tool with a strong annotation set and an output schema, the description gives enough to make a successful call. The main gap is that locale and request_id semantics are left entirely to schema inference, and there is no explicit routing guidance, but these are minor for this low-complexity 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 0%, so the description should compensate for missing parameter documentation. It only hints at project_id through 'for one project' and says nothing about locale or request_id. The parameter names and enum are self-explanatory, but the description adds little value beyond 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 provides a specific verb ('get'), resource ('current evidence-backed public facts'), scope ('one project'), and enough detail to distinguish it from siblings such as search_ai_projects or compare_ai_projects. The singular project focus makes the tool's purpose immediately clear.
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 'for one project' clearly implies this tool is for retrieving facts about a specific project, which differentiates it from search, browse, and comparison tools. However, it does not explicitly state when to prefer this over siblings or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_radar_overviewCRead-onlyIdempotentInspect
Discover current rankings, collections, categories, scenarios and filters.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | en | |
| request_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to repeat those. However, the description adds almost no extra behavioral context: 'current' weakly implies freshness, but there is no mention of what the overview contains beyond the listed nouns, whether it changes over time, or how it relates to the browse tools.
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, efficient sentence with a front-loaded action and object list. It avoids filler, though it sacrifices useful detail in favor of brevity.
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 a read-only overview call with no required parameters and an output schema, so the description's resource list is minimally sufficient for invocation. It is not fully complete because it omits usage routing and parameter semantics, but the tool's low complexity reduces the severity of those gaps.
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 schema has 0% description coverage, and the tool description does not mention either parameter. The locale enum and default are visible in the schema, but request_id's purpose is completely unexplained, and the description provides no compensating semantic guidance.
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 names a clear action ('Discover') and a concrete resource ('current rankings, collections, categories, scenarios and filters'), so an agent can tell what the tool returns. It does not explicitly differentiate from browse_radar_projects or browse_radar_skills, but the overview scope is reasonably distinct.
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?
There is no guidance on when to call this tool versus siblings like search_ai_projects, browse_radar_projects, or browse_radar_skills. The word 'current' hints at an up-to-date overview, but no conditions, exclusions, or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ai_projectsCRead-onlyIdempotentInspect
Find and verify open-source AI projects from explicit requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| locale | No | en | |
| request_id | No | ||
| constraints | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, open-world behavior, so the safety profile is covered without description. The description adds the 'verify' behavior and the explicit-requirements scoping, but does not disclose what verification entails or any operational quirks.
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 with no filler, and every phrase ('find', 'verify', 'explicit requirements') adds at least some meaning. It is efficient, though slightly under-specified for a tool with multiple parameters.
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?
Although the output schema and annotations carry significant context, the description omits parameter semantics, usage conditions, and relationship to sibling tools. For a 4-parameter search tool with 0% schema coverage, this is not enough for a confident selection or 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 0% and the description does not define query, locale, constraints, or request_id. The phrase 'explicit requirements' may hint at query/constraints but does not explain their meaning or format, so the description fails to compensate for the schema's lack of descriptions.
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 action ('Find and verify') and a clear resource ('open-source AI projects'), and adds a scoping phrase ('from explicit requirements'). It does not explicitly distinguish this tool from browse_radar_projects or find_alternatives, but the search/verify framing makes the primary purpose clear.
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?
There is no guidance about when to use search_ai_projects versus its siblings, no exclusions, and no stated alternatives. 'From explicit requirements' weakly implies a use case, but the agent is left to infer when this tool should be chosen.
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. Dates show when Glama detected each change.
9 tool updates
v0.3.3- First observed
browse_radar_projects - First observed
browse_radar_skills - First observed
compare_ai_projects - First observed
compose_ai_stack - First observed
find_alternatives - First observed
get_license_evidence - First observed
get_project_facts - First observed
get_radar_overview - First observed
search_ai_projects
TDQS
Most tools have distinct purposes, but search_ai_projects and find_alternatives both retrieve candidate projects, and get_radar_overview/Browse_radar_projects overlap in rankings/categories. The descriptions clarify the different intents well enough that an agent can usually disambiguate.
All tool names follow a consistent verb_noun snake_case pattern with clear verbs like search, get, compare, find, compose, and browse. The naming style is uniform and predictable across the entire set.
Nine tools is well-scoped for an OSINT-oriented AI project server: discovery, facts, licensing, comparison, alternatives, stack composition, and radar browsing are each represented without unnecessary bloat or obvious missing categories.
The tool surface covers the full open-source AI project intelligence workflow from searching and browsing to getting evidence-backed facts, license checks, comparisons, alternatives, and stack composition. As a read-only intelligence domain, no create/update/delete lifecycle is expected, and the available tools do not leave dead ends.
Maintenance
Related MCP Connectors
Source-traced evidence research for AI agents. We organise the evidence; you decide.
Read-only AI tool/model discovery with fit signals, unknowns, next tests, and public discussions.
111A public commons for agents to search and share reusable findings and open research questions.
Evidence-backed open-source project search, recommendations, alternatives, and comparisons.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMakes AI research agents accountable by giving every conclusion a traceable argument graph. Provides a persistent argument graph where claims require grounds and warrants for auditable, verifiable reasoning.2MIT
- AlicenseAqualityCmaintenanceEnables LLM agents to acquire token-budgeted, deterministic context packs from repositories, with hash-chained provenance for auditability.2MIT
- AlicenseBqualityAmaintenanceAn append-only research operations framework and read-only MCP that tracks research plans, approvals, observations, claims, failures, revisions, and contributions with source-grounded evidence, providing search, evidence fetch, and audit capabilities without direct ledger writes.30MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to explore an open, evidence-rich map of math problems, AI attempts, partial progress, solution claims, and replay-ready opportunities, with six read-only tools for searching, retrieving, and exporting status and handoffs.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zxhwolfe-dev/aiworkstation-open-source-intelligence'
If you have feedback or need assistance with the MCP directory API, please join our Discord server