@skeletiq/mcp
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., "@@skeletiq/mcppull the build order for the auth service and check what's drifted"
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.
@skeletiq/mcp
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/mcpopencode
{
"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 |
| yes | — | A personal API token, starting |
| no |
| For self-hosted installs. A trailing |
Scopes
A token grants only what you tick. The server's tools need:
Scope | What it unlocks | Tools |
| Projects, designs, briefs, build order, readiness, gaps, jobs |
|
| Running generations and payload critique. Spends credits. |
|
| Recording what got built |
|
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 |
| Find a project by name. Returns the candidates rather than guessing between them. |
| Read a design, in one of six modes: |
| Design a system from a prompt. Spends credits and takes minutes. |
| Poll a generation started with |
| Check a design against SkeletIQ's rules. Deterministic, free, stores nothing. Tell it the |
| Report what you built; hear what is missing, half done, or not in the design. |
How a session goes
list_projects→ resolve the project a person named.get_design(mode: "brief")→ write the fenced block intoAGENTS.md.get_design(mode: "readiness")→ see what is still undecided, and ask.get_design(mode: "build_order")→ build in that order.get_design(mode: "component", component_id: …)→ read each piece as you reach it.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 lintThe 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 toolscheck_driftReport build progress and check driftBIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| covers | No | The 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. | |
| version | No | The 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. | |
| components | Yes | What you built. Report every component in `covers`, including the ones not started. | |
| project_id | Yes | A SkeletIQ project id, or its exact name. | |
| extra_components | No | Things in the code that the design does not contain. | |
| extra_connections | No | Edges in the code the design does not have. Endpoints may be component ids or names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| counts | Yes | |
| in_sync | Yes | |
| missing | Yes | |
| partial | Yes | |
| version | Yes | |
| elsewhere | Yes | |
| unreported | Yes | |
| is_released | Yes | |
| resolved_by | Yes | |
| unknown_ids | Yes | |
| architecture_id | Yes | |
| newer_release_exists | Yes |
TDQS
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.
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.
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.
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.
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.
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 architectureARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | The 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. | |
| exposure | No | Where 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_json | No | A 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_domains | No | Further 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
| Name | Required | Description |
|---|---|---|
| findings | Yes | |
| data_score | Yes | |
| score_basis | Yes | This 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_count | Yes | |
| security_score | Yes | |
| compliance_note | Yes | |
| resilience_score | Yes | |
| exposure_assessed | Yes | The 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_score | Yes | |
| architecture_score | Yes | |
| frameworks_checked | Yes | |
| compliance_assessed | Yes | False means no compliance framework was checked, so no compliance finding was possible. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Default 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. | |
| prompt | Yes | What to design. Describe the system, its scale and its constraints in prose. | |
| project_id | No | An existing SkeletIQ project id to add a version to. Omit to start a new project. | |
| constraints | No | Facts 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_answers | No | Answers 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
| Name | Required | Description |
|---|---|---|
| title | Yes | |
| job_id | Yes | |
| status | Yes | completed | clarification_required, or the queue state on wait: false |
| version | Yes | |
| project_id | Yes | |
| degradations | Yes | |
| architecture_id | Yes | |
| component_count | Yes | |
| assistant_message | Yes | |
| clarifying_questions | Yes |
TDQS
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.
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.
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.
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.
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.
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 designARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | overview: 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. | |
| version | No | A specific version. Defaults to the latest released version, or the latest version if none is released. | |
| project_id | Yes | A SkeletIQ project id, or its exact name. | |
| component_id | No | Required for mode "component". The component id, or its name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| mode | Yes | |
| version | Yes | |
| project_id | Yes | |
| is_released | Yes | |
| resolved_by | Yes | |
| architecture_id | Yes | |
| newer_release_exists | Yes |
TDQS
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.
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.
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.
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.
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.
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 generationARead-onlyIdempotent
Check a background generation started with wait: false. When status is "completed", read the result with get_design.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job_id returned by generate_architecture with wait: false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | |
| job_id | Yes | |
| status | Yes | |
| project_id | Yes | |
| queue_state | Yes | |
| refusal_code | Yes | |
| architecture_id | Yes | |
| clarifying_questions | Yes |
TDQS
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.
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.
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.
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.
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.
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 projectsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Filter by name or description. Omit to list everything the token can see. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| projects | Yes |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v0.1.0- First observed
check_drift - First observed
critique_architecture - First observed
generate_architecture - First observed
get_design - First observed
get_generation_status - First observed
list_projects
TDQS
Scored across 6 tools
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.
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.
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.
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
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
Roadmap, tasks, releases and user feedback your coding agent reads and writes over MCP.
Build and run grounded business agents over MCP: agents, knowledge bases, skills, Storylines.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEmpower any MCP-compatible AI Agent(MCP Client) with engineering-grade capabilities to understand, modify, run, and deliver real-world code repositories.993Apache 2.0
- AlicenseAqualityBmaintenanceServes reusable SDLC agent roles and review checklists over MCP, enabling AI coding agents to execute structured product analysis, solution architecture, code review, and release management tasks in GitHub-first projects.7MIT
- AlicenseNot gradedqualityBmaintenanceServes coding agents with project-specific knowledge (decisions, conventions, constraints) over MCP and provides verification verdicts on whether code still complies.365AGPL 3.0

solucortex-mcpofficial
AlicenseAqualityAmaintenanceEnables MCP-compatible AI agents to connect to SoluCortex projects, recall relevant technical decisions, conventions, risks, and architecture before working, and record new memories afterward.4MIT
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/Sabhahith-Works/skeletiq-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server