Skip to main content
Glama

@skeletiq/mcp

npm licence node CI

Design in SkeletIQ, build with your coding agent.

SkeletIQ turns a prompt into a critiqued system architecture — components, data stores, connections, decisions, open questions — that you refine on a canvas and then release. This MCP server hands that release to any MCP-capable coding agent: it orients from a brief written into your repository's AGENTS.md, builds in a deterministic order, and reports back what it built.

Install

Nothing to install — the server runs via npx.

You need a personal API token: in SkeletIQ, go to Settings → Agent access, create one, and copy it (it is shown once).

Claude Code

claude mcp add skeletiq \
  --env SKELETIQ_API_KEY=skq_your_token_here \
  -- npx -y @skeletiq/mcp

opencode

{
  "mcp": {
    "skeletiq": {
      "type": "local",
      "command": ["npx", "-y", "@skeletiq/mcp"],
      "environment": { "SKELETIQ_API_KEY": "{env:SKELETIQ_API_KEY}" },
      "timeout": 600000
    }
  }
}

The timeout matters. A generation runs for around 217 seconds typically and up to 450 at the limit; opencode's default is far below that, and it will kill a perfectly healthy run.

Any other host

Run npx -y @skeletiq/mcp over stdio with SKELETIQ_API_KEY in the environment.

Related MCP server: Enterprise SDLC MCP

Configuration

Variable

Required

Default

Notes

SKELETIQ_API_KEY

yes

A personal API token, starting skq_. Not a browser session token.

SKELETIQ_API_URL

no

https://api.skeletiq.com

For self-hosted installs. A trailing /api/v1 is accepted and trimmed.

Scopes

A token grants only what you tick. The server's tools need:

Scope

What it unlocks

Tools

read

Projects, designs, briefs, build order, readiness, gaps, jobs

list_projects, get_design, get_generation_status

generate

Running generations and payload critique. Spends credits.

generate_architecture, critique_architecture

report

Recording what got built

check_drift

read alone is a good starting point: the agent can orient and build, but cannot spend anything.

Everything else is out of reach by construction — a token cannot mint another token, read or change your provider keys, see billing, or delete your account, whatever scopes it carries.

Tools

Tool

What it does

list_projects

Find a project by name. Returns the candidates rather than guessing between them.

get_design

Read a design, in one of six modes: overview, component, brief, readiness, build_order, gaps.

generate_architecture

Design a system from a prompt. Spends credits and takes minutes.

get_generation_status

Poll a generation started with wait: false.

critique_architecture

Check a design against SkeletIQ's rules. Deterministic, free, stores nothing. Tell it the domain and the exposure.

check_drift

Report what you built; hear what is missing, half done, or not in the design.

How a session goes

  1. list_projects → resolve the project a person named.

  2. get_design(mode: "brief") → write the fenced block into AGENTS.md.

  3. get_design(mode: "readiness") → see what is still undecided, and ask.

  4. get_design(mode: "build_order") → build in that order.

  5. get_design(mode: "component", component_id: …) → read each piece as you reach it.

  6. check_drift(covers: [...]) → report progress.

Four things to know

The brief is a managed block. It goes inside a skeletiq:brief HTML-comment fence in your AGENTS.md. A refresh replaces the whole block. Never append a second, and never edit inside one: your edits will disappear on the next refresh, silently.

A draft is not a release. An unreleased version changes on every canvas save, with nothing to tell your repository it moved. The tools label drafts, and tell you when a newer release exists.

Component ids belong to one version. A regeneration mints new ones. When check_drift returns unknown ids with suggestions, they are suggestions — put them to a person rather than assuming the mapping.

critique_architecture's optional inputs are not neutral. Omitting one does not skip a question; it answers it. With no domain and secondary_domains, no compliance framework applies, so no compliance finding is possible and the score comes back higher than the SkeletIQ app shows for the same design — by up to 15 points. With no exposure, the design is assessed as internet-facing, which is how an air-gapped system gets told to add a CDN and a WAF. The response says what was actually used — frameworks_checked and exposure_assessed — and the text output warns when a default was applied. Read those before reporting a score to a person.

Which model runs a generation

Whichever one the account holder chose under Settings → Agent access. The tools take no runtime argument, deliberately: the model asking for a design does not get to choose what it costs you.

Development

This repository is the source of the published @skeletiq/mcp package. The connector is developed in SkeletIQ's monorepo, alongside the API it talks to, and mirrored here — so the history you see is the package's real history, not a squashed snapshot. A pull request opened here cannot be merged, because the next sync would overwrite it; CONTRIBUTING.md explains what to do instead.

Node 20 or newer.

npm install
npm test          # vitest — hermetic: no network, no services, nothing to seed
npm run build     # tsup, to dist/index.js
npm run typecheck
npm run lint

The tests mock the SkeletIQ API rather than calling it, so a clean clone runs them without a token and without an account.

If npm install fails with Cannot read properties of null (reading 'edgesOut'), you are on npm 10.9.x — the version Node 22 ships — which cannot resolve this tree; vitest@4 alone triggers it. npm install -g npm@11 fixes it. This affects cloning and building only: installing the published package with npx works on that npm.

Licence

MIT — see LICENSE. Source: Sabhahith-Works/skeletiq-mcp — issues and questions go there.

The SkeletIQ platform is AGPL-3.0-or-later; this connector is MIT so it can be embedded, vendored and forked freely.

"SkeletIQ" is a mark of Sabhahith Works Private Limited — see NOTICE. Security reports go to security@skeletiq.com, not to the issue tracker: SECURITY.md.

Available Tools

6 tools
check_driftReport build progress and check driftB
Idempotent

Tell SkeletIQ which components you have built and get back what is missing, what is only half done, and what exists in the code but not in the design. Declare covers when this repository implements only part of the design. This changes nothing in SkeletIQ — an agent never writes back to a design.

ParametersJSON Schema
NameRequiredDescriptionDefault
coversNoThe component ids this repository is responsible for. Omit only when this repo implements the whole design — otherwise everything you leave out is reported as missing.
versionNoThe version you built from — the `version=` stamped in the AGENTS.md fence. Defaults to the latest released version. Component ids are only meaningful within one version.
componentsYesWhat you built. Report every component in `covers`, including the ones not started.
project_idYesA SkeletIQ project id, or its exact name.
extra_componentsNoThings in the code that the design does not contain.
extra_connectionsNoEdges in the code the design does not have. Endpoints may be component ids or names.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countsYes
in_syncYes
missingYes
partialYes
versionYes
elsewhereYes
unreportedYes
is_releasedYes
resolved_byYes
unknown_idsYes
architecture_idYes
newer_release_existsYes

TDQS

B3.4/5.0
Behavior1/5

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

Description says 'This changes nothing in SkeletIQ — an agent never writes back to a design,' which directly conflicts with the annotation readOnlyHint=false. The annotation implies the tool may mutate state; the description claims it does not. This is a clear annotation contradiction, so the score must be 1.

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 two sentences with no filler. It front-loads the purpose and outcome, then adds the critical covers nuance and the no-writes clarification. Every sentence earns its place.

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 a full input schema, output schema, and annotations, the description covers the essential concept of drift, the covers behavior, and the side-effect guarantee. It is complete for invocation. The annotation contradiction slightly undermines the side-effect clarity, but the description itself is adequate.

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

Parameters3/5

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

Schema coverage is 100%, so the description is not required to repeat parameter meanings. The main description adds a useful covers rule ('Declare covers when this repository implements only part of the design'), but that guidance is also present in the schema's covers parameter description. The description does not add significant meaning beyond the schema.

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 verb ('check drift') and clearly describes the resource (SkeletIQ project design/code comparison) and the three kinds of results returned: missing, half-done, and code-only. It is immediately distinguishable from siblings like list_projects, get_design, and generate_architecture.

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 context is implied: use this after building components to report progress and see drift. However, no explicit when-to-use or exclusions are given, and no alternative tools are named. An agent must infer the right timing and when not to use this tool.

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

critique_architectureCritique an architectureA
Read-onlyIdempotent

Check a design against SkeletIQ's architecture rules and get scored findings back. Deterministic and free — no model call, no credits, nothing stored. Useful on a design you drafted yourself before committing to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoThe design's domain — e-commerce, fintech, healthcare, saas, social, iot, gaming, infrastructure, streaming, logistics, ai-ml, search, data-analytics, content-platform, internal-tool. Worth sending: the domain is what selects the compliance frameworks to check against, and without it none apply, so no compliance finding is possible and the score comes back higher than the SkeletIQ app would show for the same design — by up to 15 points.
exposureNoWhere the design runs. Worth sending: four checks — CDN, WAF, rate limiting and multi-region — ask whether traffic arriving from the public internet is handled safely, and they only apply to a system that takes any. Left unset, the design is assessed as internet-facing, which is why an air-gapped design comes back told to add a CDN. exposure_assessed says which exposure was actually used.
architecture_jsonNoA design to check. Free and deterministic — no model call. The shape SkeletIQ uses: title, description, components[{id,name,type,technology?}], connections[{source,target,protocol?}].
secondary_domainsNoFurther domains the design spans, when it spans more than one — a multi-tenant shop that takes payments is e-commerce plus fintech and saas. These select frameworks on top of the primary domain's, so leaving them off is why a design already checked against SOC2 and SOX in the app comes back here checked against neither, and scored higher for it. frameworks_checked says which were actually used.

Output Schema

ParametersJSON Schema
NameRequiredDescription
findingsYes
data_scoreYes
score_basisYesThis score is findings only. It is not held to a traceability ceiling, because this tool is given a design and no requirement set to trace it against. The app can show a lower number for the same stored design for exactly that reason.
finding_countYes
security_scoreYes
compliance_noteYes
resilience_scoreYes
exposure_assessedYesThe exposure this critique was actually run under. An absent or unreadable exposure is assessed as public_internet, so a value the server could not read shows up here rather than arriving silently as four extra security findings.
performance_scoreYes
architecture_scoreYes
frameworks_checkedYes
compliance_assessedYesFalse means no compliance framework was checked, so no compliance finding was possible.

TDQS

A4.4/5.0
Behavior5/5

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

The description adds meaningful behavior beyond the annotations: 'Deterministic and free — no model call, no credits, nothing stored.' This clarifies side effects, cost, persistence, and repeatability, which is especially valuable for a read-only, idempotent tool.

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?

Three short sentences with no filler. The core action comes first, followed by key behavioral traits and a use-case tip. Every sentence earns its place.

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?

The description, rich schema, annotations, and output schema together give the agent enough to use the tool correctly. A minor gap is that no top-level parameter is marked required, so the description could more explicitly signal that architecture_json is essential for a meaningful check.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The tool description itself doesn't add parameter-level meaning, but the detailed property descriptions already explain domain, exposure, architecture_json, and secondary_domains thoroughly.

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 verb and resource: 'Check a design against SkeletIQ's architecture rules and get scored findings back.' This clearly differentiates it from siblings like generate_architecture or check_drift, which create or compare rather than score a design against rules.

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 description gives clear usage context: 'Useful on a design you drafted yourself before committing to it.' It doesn't explicitly mention when not to use it or name alternative tools, so it falls just short of full exclusion guidance.

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

generate_architectureGenerate a SkeletIQ architectureA

Design a system architecture from a prompt. This spends the account holder's credits and takes several minutes, so do not call it speculatively — if a design already exists, read it with get_design instead. Which model runs it is the account holder's stored setting; you do not choose it. Describe the system, what it must do, and the scale and constraints it runs under: whatever the prompt leaves out is assumed, and a prompt that names no system at all comes back as clarification_required with the questions to answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitNoDefault true: run inline and return the finished design (this takes several minutes). False queues it as a background job and returns a job_id to poll — not available on every deployment.
promptYesWhat to design. Describe the system, its scale and its constraints in prose.
project_idNoAn existing SkeletIQ project id to add a version to. Omit to start a new project.
constraintsNoFacts about the design that the prose does not have to carry. Anything omitted is assumed by SkeletIQ, and the design says which values were assumed.
clarification_answersNoAnswers to the questions a previous call returned with status "clarification_required", keyed by their ids. Treated as authoritative requirements, so send what the user told you — ask them rather than guessing.

Output Schema

ParametersJSON Schema
NameRequiredDescription
titleYes
job_idYes
statusYescompleted | clarification_required, or the queue state on wait: false
versionYes
project_idYes
degradationsYes
architecture_idYes
component_countYes
assistant_messageYes
clarifying_questionsYes

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses meaningful behavior: it spends the account holder's credits, takes several minutes, uses the account holder's stored model setting rather than letting the caller choose, and returns clarification_required when the prompt names no system. It also makes clear that omitted prompt details are assumed, which is important operational context.

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 compact and front-loaded with purpose, then critical warnings about cost and latency, then behavioral context about model selection and prompt assumptions. Every sentence carries necessary information without redundancy or fluff.

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

Completeness5/5

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

Given the rich input schema, output schema, and related tools, the description covers the essential operational aspects: cost, latency, non-speculative calling, routing to get_design, model selection, assumption behavior, and clarification responses. Nothing critical for correct invocation is missing; return-value details are already covered by the output schema.

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

Parameters4/5

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

The schema already documents all parameters (100% coverage), so the baseline is 3. The description adds value beyond the schema by explaining how to write the prompt field—describe the system, its purpose, scale, and constraints—and by warning that unspecified details are assumed. This meaningfully enriches the most important parameter.

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 first sentence states a specific verb+resource: 'Design a system architecture from a prompt.' It also distinguishes itself from get_design by saying existing designs should be read rather than regenerated, which differentiates it from its closest sibling.

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

Usage Guidelines5/5

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

The description explicitly warns not to call speculatively because it spends credits and takes minutes, and names get_design as the alternative when a design already exists. It also tells the caller what to include in the prompt and how the tool responds when no system is named, giving clear conditions for use.

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

get_designRead a SkeletIQ designA
Read-onlyIdempotent

Read a SkeletIQ architecture. Start with mode "brief" to orient — it returns a fenced block to write into AGENTS.md — then "build_order" for the sequence and "component" for each piece as you build it. Every answer states which version it came from and whether that version is a release.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesoverview: the whole design. component: one component, its connections in both directions, and the decisions that mention it. brief: the fenced markdown block to write into AGENTS.md. readiness: what still has to be decided before this design is worth building. build_order: the order to build components in, and why. gaps: the open questions and unconfirmed assumptions in the design.
versionNoA specific version. Defaults to the latest released version, or the latest version if none is released.
project_idYesA SkeletIQ project id, or its exact name.
component_idNoRequired for mode "component". The component id, or its name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
modeYes
versionYes
project_idYes
is_releasedYes
resolved_byYes
architecture_idYes
newer_release_existsYes

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (readOnly, idempotent, openWorld), the description reveals useful behavior: 'brief' returns a fenced markdown block for AGENTS.md, and every answer states which version it came from and whether that version is a release. This adds meaningful runtime context 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?

Three sentences, all purposeful: the first states the tool's purpose, the second provides a practical usage sequence, and the third discloses a key output behavior. There is no fluff, and the most actionable guidance is front-loaded.

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?

Given the rich input schema, annotations, and output schema, the description is largely complete: it explains the primary mode flow and a notable version-related behavior. It does not need to enumerate every mode because the schema already does that in detail.

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

Parameters4/5

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

The input schema already documents all parameters with 100% coverage, so the baseline is 3. The description adds extra meaning by explaining how to sequence modes and clarifying that the version/release context appears in every answer, which goes slightly beyond what the schema states.

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 opens with a specific verb and resource: 'Read a SkeletIQ architecture.' It clearly distinguishes this tool from siblings like generate_architecture or critique_architecture by framing it as a read operation, and it adds the key concept of versioned design output.

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 description gives explicit in-tool workflow guidance: start with mode 'brief' to orient, then use 'build_order' and 'component' as you build. It does not explicitly contrast this tool with sibling alternatives, but the reading workflow is clear enough to guide invocation.

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

get_generation_statusCheck a queued SkeletIQ generationA
Read-onlyIdempotent

Check a background generation started with wait: false. When status is "completed", read the result with get_design.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job_id returned by generate_architecture with wait: false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorYes
job_idYes
statusYes
project_idYes
queue_stateYes
refusal_codeYes
architecture_idYes
clarifying_questionsYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and open-world. The description adds workflow context: it is a status checker for async jobs and it hands off to get_design upon completion. This goes beyond the annotations, though it does not describe status values beyond 'completed'.

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?

Two sentences with no filler; the trigger condition is front-loaded and the follow-up action is stated in the second sentence. Every word earns its place.

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

Completeness5/5

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

For a simple status-check tool with a full output schema and read-only/idempotent annotations, the description covers when to call it and what to do next. Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and the job_id parameter is already documented as the value returned by generate_architecture with wait: false. The description adds no new parameter semantics, so baseline 3 applies.

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

Purpose5/5

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

States a specific action ('check') on a clearly scoped resource ('background generation started with wait: false') and distinguishes it from get_design, which reads the completed result. The title reinforces that it covers queued generations, so an agent can tell it apart without opening the schema.

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

Usage Guidelines4/5

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

Gives the exact context for use (background generation with wait: false) and explicitly directs the agent to get_design when status is 'completed'. It does not enumerate exclusions, such as synchronous wait:true usage, but the context is unambiguous for this polling scenario.

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

list_projectsList SkeletIQ projectsA
Read-onlyIdempotent

List the SkeletIQ projects this token can see, optionally filtered by name. Use this first to turn a project a person named in conversation into an id. If more than one project matches, ask which — do not pick one.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFilter by name or description. Omit to list everything the token can see.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
projectsYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already communicate read-only, open-world, and idempotent behavior, and the description adds useful context beyond those hints: token-scoped visibility, optional filtering, and the multiple-match 'ask, don't pick' policy. There is no contradiction with 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?

Three short sentences deliver the core operation, the primary use case, and the ambiguity rule with no filler. The most important 'list projects' statement is front-loaded.

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

Completeness5/5

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

With one optional parameter, full schema parameter coverage, an output schema, and annotations covering side-effect safety, the remaining agent-facing context is exactly what the description provides: token scope, filtering, and multiple-match handling. Nothing critical is missing.

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

Parameters3/5

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

The schema already documents the only parameter fully: 'Filter by name or description. Omit to list everything the token can see.' The description repeats the optional-filter idea without adding new syntax, defaults, or examples, so it earns the baseline for full schema coverage.

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 and resource: 'List the SkeletIQ projects this token can see' with optional name filtering. It also states the intended use, resolving a named project to an id, which clearly separates it from the design, generation, and critique siblings.

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

Usage Guidelines5/5

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

It explicitly says 'Use this first' when a project name needs to become an id, and it gives a concrete decision rule: if multiple projects match, ask rather than pick. Since none of the siblings are list operations, no alternative routing is needed.

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.

  1. 6 tool updatesv0.1.0
    • First observedcheck_drift
    • First observedcritique_architecture
    • First observedgenerate_architecture
    • First observedget_design
    • First observedget_generation_status
    • First observedlist_projects

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool occupies a clearly distinct role: listing projects, reading existing designs, generating new ones, polling generation status, critiquing a design, and checking drift. There is no meaningful overlap between any pair.

Naming Consistency5/5

All tool names follow the same lowercase snake_case verb_noun pattern (list_projects, get_design, generate_architecture, get_generation_status, critique_architecture, check_drift). The verbs are specific and consistently placed.

Tool Count5/5

Six tools is a well-scoped size for an architecture design assistant. Each tool covers a distinct stage in the workflow without redundancy or bloat.

Completeness5/5

The surface covers the full lifecycle an agent needs: discover projects, read designs, kick off generation, poll for completion, critique a proposed design, and verify built code against the design. No operation essential to the stated purpose is missing.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Empower any MCP-compatible AI Agent(MCP Client) with engineering-grade capabilities to understand, modify, run, and deliver real-world code repositories.
    993
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Serves coding agents with project-specific knowledge (decisions, conventions, constraints) over MCP and provides verification verdicts on whether code still complies.
    365
    AGPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    Enables MCP-compatible AI agents to connect to SoluCortex projects, recall relevant technical decisions, conventions, risks, and architecture before working, and record new memories afterward.
    4
    MIT

Latest Blog Posts

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/Sabhahith-Works/skeletiq-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server