Skip to main content
Glama
zxhwolfe-dev

AI Workstation Open Source Intelligence MCP Server

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.

AI Open Source Radar production homepage showing rankings, project cards, and the AI Open Source Intelligence product entry

Product shape

User in ChatGPT / Codex / compatible host
                 |
                 v
      1 unified product Skill
                 |
                 v
      9 read-only MCP tools
                 |
                 v
     AI Workstation public Radar

The 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: Warranted

One active Skill

ai-open-source-intelligence

It 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.yaml

agents/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_skills

All 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=false

Therefore an ordinary Skill/MCP workflow is:

ChatGPT/Codex host model
        -> chooses/read tools
        -> AI Workstation public Radar data/evidence
        -> host model synthesizes the final answer

It is not:

host model -> AI Workstation model -> second model bill

If 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:

  1. verified facts — source-backed observations that crossed the evidence boundary;

  2. recommendations — host-model/rules analysis;

  3. unknowns — unavailable or unverified information;

  4. 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_resources

with:

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/mcp

Current Hosted mode is intentionally:

anonymous
read-only
data-only
9 tools
no OAuth
no WorkOS dependency
no Premium/server model

The 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, burst 30;

  • sustained: 10 requests/minute, burst 300;

  • concurrent connections: 10 per IP;

  • MCP request body: 256 KB maximum;

  • 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/mcp as 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-mcp

Live public Radar data:

OSI_PROVIDER=http \
AIWORKSTATION_RADAR_BASE_URL=https://aiworkstation.cn \
osi-mcp

Hosted 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-config

Setting 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 tools
browse_radar_projectsC
Read-onlyIdempotent
Inspect

Browse rankings, collections, categories, scenarios, topics or filtered projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNo
layerNo
limitNo
queryNo
topicNo
localeNoen
offsetNo
licenseNo
rankingNo
categoryNo
scenarioNo
use_caseNo
collectionNo
deploymentNo
request_idNo
radar_topicNo
github_topicNo
resource_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds context about the facets being browsable (rankings, collections, categories, etc.) but does not disclose matching logic, pagination behavior, or result-level details. It is consistent with the annotations and does not contradict them, but also adds only modest behavioral context beyond 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence and front-loads the verb, but the brevity crosses into under-specification. The list of browse facets is useful, yet the structure leaves no room for usage guidance or parameter clarification, so the conciseness is achieved at the expense of completeness.

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

Completeness2/5

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

Given the tool's complexity (18 optional parameters) and the presence of several closely related siblings, the description is too thin. It does not explain how 'filtered projects' relate to the listed facets, what the ranking/scenario/topic fields mean in practice, or when to prefer this over search_ai_projects. The output schema mitigates return-value explanation, but other contextual gaps remain.

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

Parameters2/5

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 burden of explaining 18 parameters. It clarifies a few categories (ranking, collection, category, scenario, topic, query), but leaves many parameters ambiguous (role, layer, license, deployment, radar_topic, github_topic, resource_type, request_id, use_case). The description does not compensate for the schema's lack of parameter-level documentation.

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

Purpose4/5

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

The description names a specific verb ('Browse') and resource ('radar projects'), and enumerates the key entry points: rankings, collections, categories, scenarios, topics, or filtered projects. It is distinguishable from the sibling browse_radar_skills (skills vs projects) and search_ai_projects (browse vs search), though it does not explicitly contrast itself with them.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus search_ai_projects, get_radar_overview, or browse_radar_skills. The description only implies browsing/filtering use; it states no exclusions, prerequisites, or alternative selection criteria.

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

browse_radar_skillsA
Read-onlyIdempotent
Inspect

Browse/filter the Radar Skills library or open one Skill by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
sortNo
limitNo
queryNo
localeNoen
offsetNo
licenseNo
categoryNo
skill_idNo
request_idNo
installableNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already carry the safety profile: readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false. The description adds a useful distinction between library browsing and opening a single Skill by ID, but provides no further behavioral context such as result shape or filtering semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every word adds meaning, and it communicates the core behavior efficiently.

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

Completeness2/5

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

Despite having annotations and an output schema, the tool has 11 undocumented parameters and multiple usage modes. The one-line description does not explain how parameters combine, when to use direct ID lookup versus filtering, or what distinguishes the two modes. An agent would need significant inference to call this correctly in non-trivial cases.

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

Parameters2/5

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

Schema description coverage is 0%, and the tool has 11 parameters. The description only gestures at 'one Skill by ID,' which maps to skill_id, and 'browse/filter' at a high level. It leaves kind, sort, limit, query, locale, offset, license, category, request_id, and installable unexplained.

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

Purpose5/5

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

The description states a specific action and resource: 'Browse/filter the Radar Skills library or open one Skill by ID.' It clearly distinguishes the tool from sibling project-focused tools like browse_radar_projects by naming the Radar Skills library explicitly.

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

Usage Guidelines3/5

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

The description implies usage scenarios: browsing/filtering versus fetching a single skill by ID. However, it does not explicitly say when to prefer this tool over alternatives such as browse_radar_projects or search_ai_projects, leaving that decision to inference.

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

compare_ai_projectsB
Read-onlyIdempotent
Inspect

Compare two to five projects in one explicit decision context.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoen
contextNo
criteriaNo
request_idNo
project_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description adds little beyond the project-count constraint. It does not mention output format, errors, or behavior for invalid counts; the output schema may cover return values, but the description itself contributes minimal behavioral transparency. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler and front-loads the core action and constraint. It is appropriately concise for a tool whose annotations and output schema carry the safety and return-value burden.

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

Completeness2/5

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

Given five parameters, zero schema descriptions, and a sibling list with overlapping comparison/search tools, this one-line description is not enough for reliable selection and invocation. The output schema reduces the need to document return values, but context/criteria semantics and usage boundaries remain missing.

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

Parameters2/5

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, but it only clarifies that project_ids should contain two to five projects. The semantics of context, criteria, locale, and request_id are left entirely unexplained, making it hard for an agent to invoke the tool with correct parameter intent.

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

Purpose5/5

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

The description uses a specific verb ('Compare'), names the resource ('projects'), and adds a precise cardinality ('two to five') plus a decision context. This clearly distinguishes it from siblings like search_ai_projects or find_alternatives, and aligns with the annotation title 'Compare open-source AI projects'.

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

Usage Guidelines3/5

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

The phrase 'in one explicit decision context' implies the intended use case, and the range 'two to five' sets a boundary. However, there is no explicit guidance on when to prefer this tool over siblings such as find_alternatives or browse_radar_projects, and no exclusions are stated.

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

compose_ai_stackC
Read-onlyIdempotent
Inspect

Compose a candidate open-source AI stack and expose unknown compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoen
request_idNo
constraintsNo
business_goalYes
existing_stackNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_alternativesC
Read-onlyIdempotent
Inspect

Find verified candidate alternatives while preserving constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoen
project_idYes
request_idNo
constraintsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_evidenceC
Read-onlyIdempotent
Inspect

Get observed license evidence; the result is not legal advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoen
project_idYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, covering the safety and side-effect profile. The description adds the useful caveat that the result is not legal advice, which is behavioral context beyond the annotations, but it does not add much else.

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 description is a single compact sentence and is front-loaded with the core purpose. However, it is so terse that it leaves out necessary context about parameters and tool selection, so the brevity is not fully 'appropriate' for the tool's complexity.

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

Completeness2/5

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

The output schema and annotations carry a fair amount of context, but the description still leaves important gaps: it never connects the tool to a project, provides no parameter semantics, and does not explain how this differs from get_project_facts. An agent could call it with project_id, but may not understand the scope or limitations of the returned evidence.

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

Parameters1/5

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 by explaining parameters, but it does not mention project_id, locale, or request_id at all. The phrase 'license evidence' only weakly implies what project_id should be and provides no guidance on the optional parameters.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Get observed license evidence' clearly states what the tool returns. It is reasonably clear, though it does not mention 'project' even though project_id is the key parameter, and it does not explicitly distinguish itself from sibling tools like get_project_facts.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives such as get_project_facts or browse_radar_projects. The disclaimer about legal advice is useful but does not help an agent decide when this tool is the appropriate choice.

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

get_project_factsA
Read-onlyIdempotent
Inspect

Get current evidence-backed public facts for one project.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoen
project_idYes
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive, open-world behavior. The description adds useful context beyond those hints: facts are 'current', 'evidence-backed', and 'public', which shapes agent expectations about freshness, sourcing, and visibility without contradicting 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. Every modifier ('current', 'evidence-backed', 'public', 'one project') carries meaningful information that helps an agent invoke the tool correctly.

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, rich annotations, and only one required parameter, the tool is simple enough that the description plus schema covers what an agent needs to call it. Minor gaps around parameter semantics and sibling differentiation exist, but nothing essential is missing for basic correct invocation.

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

Parameters2/5

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, but it does not explain locale, request_id, or even explicitly map 'one project' to project_id. Only the enum/default in the schema and the parameter names give agents any hint about parameter purpose, leaving obvious gaps for locale formatting and request correlation.

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

Purpose5/5

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

The description names a specific verb ('Get'), resource ('evidence-backed public facts'), and clear scope ('for one project'), immediately separating this from broader list/search/overview siblings like browse_radar_projects and get_radar_overview. It is direct and unambiguous about what the tool returns.

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 phrase 'for one project' clearly frames when this tool is appropriate: when the agent needs focused facts about a specific project rather than a list, comparison, or overview. It does not explicitly name alternatives or exclusion cases, but the context is clear 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.

get_radar_overviewB
Read-onlyIdempotent
Inspect

Discover current rankings, collections, categories, scenarios and filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoen
request_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds no extra behavioral context beyond these hints, such as potential result size or dynamic nature. Since annotations carry the burden, the description's lack of additional disclosure is acceptable but not distinguished.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded with the key terms (rankings, collections, etc.). It is appropriately brief and free of fluff, though slightly sparse. It earns a strong score for efficiency without being verbose.

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?

With an output schema available and clear annotations, the description covers the core purpose but omits usage context and parameter details. For a simple read-only overview, the description is minimally adequate, but it lacks the guidance that would make it fully self-sufficient for an agent to call it correctly.

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

Parameters2/5

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

Schema coverage is 0%, and the description does not explain the locale or request_id parameters. While locale likely controls language, request_id is ambiguous and could affect behavior. The description fails to compensate for the schema's lack of documentation, leaving the agent without meaningful parameter guidance.

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

Purpose4/5

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

The description clearly states the tool discovers current rankings, collections, categories, scenarios, and filters, specifying the resource (radar overview) and the action (discover). While it does not explicitly name sibling tools, the content scope distinguishes it from more targeted tools like browse_radar_projects or compare_ai_projects. The purpose is specific enough for an agent to select it for an overview request.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention that for detailed project browsing one should use browse_radar_projects, or that this is a starting point for an overview. The context is purely declarative, leaving the agent to infer usage without explicit direction.

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

search_ai_projectsC
Read-onlyIdempotent
Inspect

Find and verify open-source AI projects from explicit requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
localeNoen
request_idNo
constraintsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 9 tool updatesv0.3.3
    • First observedbrowse_radar_projects
    • First observedbrowse_radar_skills
    • First observedcompare_ai_projects
    • First observedcompose_ai_stack
    • First observedfind_alternatives
    • First observedget_license_evidence
    • First observedget_project_facts
    • First observedget_radar_overview
    • First observedsearch_ai_projects

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityNo data
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Makes 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.
    2
    MIT
  • A
    license
    C
    quality
    A
    maintenance
    An 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.
    30
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables revision-bound source audits with exact article fingerprinting, claim-to-source mapping, quotation verification, and immutable JSON evidence reports for prepublication review.
    9
    MIT