mcp-skylos
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| analyzeA | Find dead code: unused functions, classes, imports, variables, parameters and files. Use this to list cleanup candidates in a project. Returns JSON with a
summary and per-category findings (file, line, name, confidence) plus
Defect and Review records remain complete. Advice is grouped by default; expand_advice=True includes every Advice record. Read _result_uri for the complete saved result without rescanning. Works without SKYLOS_API_KEY (5 calls/day); higher limits with a key. |
| security_scanA | Scan source code for security issues such as SQL and command injection, SSRF, path traversal, eval/exec and unsafe deserialization. Returns JSON with findings (rule ID, severity, file, line, message) and
Defect and Review records remain complete. Advice is grouped by default; expand_advice=True includes every Advice record. Read _result_uri for the complete saved result without rescanning. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| quality_checkA | Report code-quality issues: high complexity, deep nesting, long functions, duplicate branches and similar maintainability findings. Returns JSON with findings (rule ID, file, line, message) and
Defect and Review records remain complete. Advice is grouped by default; expand_advice=True includes every Advice record. Read _result_uri for the complete saved result without rescanning. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| architecture_checkA | Report architecture findings for a project: module coupling, cohesion and circular dependencies. Returns JSON with the architecture findings and Defect and Review records remain complete. Advice is grouped by default; expand_advice=True includes every Advice record. Read _result_uri for the complete saved result without rescanning. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| health_scoreA | Assess a project through separate Risk, Maintainability and Dead code readouts. This tool retains its health_score name for compatibility but no longer creates a blended numeric grade. Gate policy remains independent. Returns assessment, coverage, finding counts and _run_id. Read-only and local. Advice is grouped by default; expand_advice=True includes every Advice record. Read _result_uri for the complete saved result. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| secrets_scanA | Find hard-coded secrets and credentials (API keys, tokens, private keys, passwords) in source and config files. Returns JSON with findings (provider, file, line) and Defect and Review records remain complete. Advice is grouped by default; expand_advice=True includes every Advice record. Read _result_uri for the complete saved result without rescanning. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| remediateA | Plan or apply LLM-generated fixes for Skylos findings in a project. With dry_run=True (default), static analysis returns a remediation
plan without calling a model or changing files. With dry_run=False,
it generates fixes and can edit files in place: this needs the
Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| verify_dead_codeA | Ask an LLM to review selected unused function, class, import and variable candidates, with its reasoning. Use it after Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| provenance_scanA | Report available evidence of AI-agent, bot and human contributions. Combines git signals since the base (agent bot accounts, Co-authored-by and AI declaration trailers, agent-named commit subjects) with recorded local attribution evidence. Returns JSON with per-file attribution, evidence and coverage status. Commit declarations do not establish line authorship; missing evidence remains unknown. Read-only and local. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| generate_fixA | Build a unified-diff patch that removes (or comments out) dead code found by static analysis, after grep verification drops findings that are still referenced. Returns the diff, patch summary, validation errors and applied status. With apply=False (default) it previews changes; with apply=True it edits files if patch validation succeeds. Refuses to run when the analysis or grep verification was incomplete. Review the diff and run trusted tests before keeping it. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| learn_triageA | Record whether a finding was accepted or dismissed so Writes the decision to the project's local Skylos state. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| get_triage_suggestionsA | Suggest accept or dismiss for current findings, based on decisions recorded with Returns JSON suggestions with finding fingerprints, suggested actions and confidence, plus the number of learned patterns. Read-only and local. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| validate_code_changeA | Validate a code diff for security regressions and issues before it lands. Takes a unified diff and checks for:
Returns pass/fail with findings. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| verify_changeA | Verify a changed file/range for AI-code defects and security bugs. Returns a narrow, versioned JSON verdict containing AI-code trust findings such as hallucinated references, unfinished generated code, stale references, disabled controls, and dependency hallucinations (checked by default; pass include_dependency_hallucinations=False to skip the registry lookups), plus high/critical security findings (category "security") and hard-coded secrets (category "secret", values redacted) in the selected file/range. Pass include_security_findings=False to skip the security and secret checks. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| verify_agentA | Statically verify an AI agent's guardrails before deployment. Deterministic, local pre-deployment agent verification: inventories LLM integrations, runs the defense checks (prompt-injection exposure, dangerous sinks, tool scope, output validation, PII filtering, cost controls), and returns scores, failed checks with remediation, OWASP LLM/Agentic coverage, and a reproducible attestation digest. No model is involved in the verdict and the analysis runs locally; source code is not sent to Skylos Cloud. Optional gate: set fail_on (severity) and/or min_score (0-100). Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| get_security_contextA | Summarize a project's security setup: detected web frameworks, auth decorators and middleware, security headers, rate limiting, input validation and a supported Skylos YAML policy file. Use it before reviewing or writing security-sensitive code to learn the project's conventions. Returns JSON. Read-only and local. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
| change_mapA | Map what a code change touches, to review it: every changed Python or TypeScript/JavaScript function, method or class with its old and new code, calls added and removed, calls that only moved into a helper, its callers (with call lines, and whether each caller was updated), removed security checks and access checks, breaking or compatible signature changes, changed module values and the functions using them, and the top symbols to read first. Flags list what a person must look at. Computed from the code, not by a model: the same commit gives the same map. Returns JSON. Read-only and local. Requires SKYLOS_API_KEY: this tool returns an authentication error unless the MCP server is started with SKYLOS_API_KEY set. Without a key only |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_latest_result | Complete JSON result, including every Advice record; of the most recent stored Skylos tool run. |
| list_results | List stored tool runs with run_id, tool, path and timestamp. |
TDQS
Scored across 17 tools
Several tools have genuinely distinct targets (analyze, security_scan, secrets_scan, quality_check, architecture_check, provenance_scan, change_map), but `validate_code_change` and `verify_change` both inspect a diff for security/dependency defects and are easy to confuse, as are `generate_fix` (deterministic dead-code patch) and `remediate` (LLM fixes). The overloaded `verify_` prefix spans three unrelated domains (dead code, AI agents, diffs), which muddies selection, and `health_score` overlaps with analyze/quality_check readouts.
Everything is snake_case and readable, but the convention is mixed: verb_noun (verify_change, get_security_context, generate_fix, learn_triage), noun_verb (security_scan, secrets_scan, quality_check, architecture_check), and bare nouns/verbs (analyze, remediate, health_score, change_map). The result is a set where you cannot infer from the name alone whether a tool scans, verifies, or reports.
17 tools is on the heavy side for one analysis server, and a few feel marginal or duplicative: health_score mostly aggregates outputs already available from analyze/quality_check, and learn_triage/get_triage_suggestions are a narrow pairing. It is justifiable for a broad static-analysis platform, but the surface is creeping toward overlap rather than crisp separation.
Coverage is broad: dead code, security, secrets, quality, architecture, AI-agent and provenance verification, diff validation, remediation, and triage learning, with full result retrieval documented via resources. Gaps are minor — no explicit way to manage suppressions/config (rules, ignore files) or compare against a baseline, though triage partially covers accepting/dismissing findings.