Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Imperal MCP

PYPI · IMPERAL-MCP

Build, validate, smoke-test & deploy Imperal declarative IR apps from any LLM or agent.

Available components

+4 this week 54 Trust /100

Last scanned (5 hours ago)

Scores higher than 56% of PyPI servers

Category CI/CD and DevOps

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 1 of 30 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability42
  • 20% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
  • AI-judged instruction clarity (fair).Partial
  • Tool/resource definitions use about 3182 tokens (~83/item across 38 items; 34 tools + 4 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management47
  • Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 36 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
What we tested

Checks we ran (15)

  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Checks we could not complete (1)

These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • Malware scan in Supply Chain SecurityMalware scan not yet available for this package.

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 −14
    • Malware scan: pass → unverified ▼ security
  • 4 Nov 26 0
    • Provenance: fail → unverified ▼ security
    • Package version: 0.8.14 → 0.9.1 functional
    • Package version: 0.8.14 → 0.9.0 functional
    • Package version: 0.8.14 → 0.8.15 functional
  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 +16
    • Provenance: fail → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Package version: 0.8.12 → 0.8.14 functional
  • 29 Oct 26 +11
    • Malware scan: pass → unverified ▼ security
    • Injection markers: unverified → pass ▲ security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Schema quality: unverified → 20 ▲ functional
    • Stability: unverified → 0.23 ▲ functional
  • 28 Oct 26 −10
    • Tool safety: pass → unverified ▼ security
    • Stability: 0.17 → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Capabilities: pass → unverified ▼ functional
    • Schema quality: 20 → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 0.8.11 → 0.8.12 functional
  • 27 Oct 26 0
    • Package version: 0.8.10 → 0.8.11 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/imperal-mcp@0.9.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend Known build tool hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 30 packages
Packages resolved 30
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 34 exposed · ~2,250 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_syntax ~35

Fast local tree-sitter syntax validation of a source file after editing.

NameTypeReqDescription
pathstringyes–
root–––

No output schema declared.

No examples provided.

checkpoint ~39

Capture an instant, invisible ShadowGit snapshot of the workspace without touching the user's real .git history.

NameTypeReqDescription
labelstring––
root–––

No output schema declared.

No examples provided.

checkpoint_diff ~38

Show a unified diff between the current workspace state and a ShadowGit checkpoint.

NameTypeReqDescription
paths–––
root–––
target–––

No output schema declared.

No examples provided.

checkpoint_rollback ~38

Restore the workspace to a previous ShadowGit checkpoint (an auto-safety snapshot is taken first).

NameTypeReqDescription
root–––
target–––

No output schema declared.

No examples provided.

coding_context ~33

Project file tree and git status snapshot (respecting .gitignore and pruning heavy build/vendor directories).

NameTypeReqDescription
root–––

No output schema declared.

No examples provided.

contract_slice ~44

Return the endpoints and route links across the user's repos, plus the given symbols with their callers.

NameTypeReqDescription
root–––
symbolsarrayyes–
target–––

No output schema declared.

No examples provided.

deploy_ir ~42

Deploy an app.ir.json into the caller's account (creates the app record if needed).

NameTypeReqDescription
app_idstringyes–
app_irobjectyes–

No output schema declared.

No examples provided.

frame ~89

The kernel's step frame for your work (the same frame a Webbee step gets): your task and plan with what is proven, the code around your focus from the exact graph, what your change reaches, the world, your path. Call it FIRST -- at the start and after each change -- before your shell's own search and read tools.

NameTypeReqDescription
root–––
target–––

No output schema declared.

No examples provided.

get_app ~73

One app: what it is and its callable tools (name, action_type, what it does) -- the run_read_tool / run_write_tool ``function`` names; full=true gives the raw record with the whole manifest (PII-masked).

NameTypeReqDescription
app_idstringyes–
fullboolean––

No output schema declared.

No examples provided.

graph_slice ~54

Return definition locations, signatures, direct callers, and callees for a batch of symbols from the code graph.

NameTypeReqDescription
depthinteger––
root–––
symbolsarrayyes–
target–––

No output schema declared.

No examples provided.

grep_code ~97

An exact text (or regex) inside the code -- a string in a function body the symbol search does not index. `target`: local (default), ssh:<connection_id> or host:<alias> with `root` = the repo path there.

NameTypeReqDescription
kinteger––
path_glob–––
patternstringyes–
regexboolean––
root–––
target–––

No output schema declared.

No examples provided.

impact_of_change ~78

Given symbols you plan to modify, return the files and call sites that depend on them (code first, tests after, uses inside the same file listed apart). Bounded to the first entries with their totals unless full=true.

NameTypeReqDescription
fullboolean––
root–––
symbolsarrayyes–
target–––

No output schema declared.

No examples provided.

list_apps ~20

List the caller's developer apps (PII-masked).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

live_sessions ~123

The user's OTHER sessions active in the last ``minutes`` -- Webbee in a terminal, another shell through imperal-mcp, the panel, Telegram: each with its surface, when it last moved, and its last request, steps and answer, and the newest steps of a turn still running; recall(ref, conversation=...) opens any message whole, state_lens(conversation=...) its state. Read-only, on request: nothing of another session enters your frame by itself.

NameTypeReqDescription
limitinteger––
minutesinteger––

No output schema declared.

No examples provided.

message_session ~121

Write to another session of the user that is working now (``live_sessions`` names them -- Webbee in a terminal, another shell): a finding to check, a question, what you are doing so you do not both do it. It reads your words as an AGENT's, never the user's: a message approves nothing and changes no task -- decisions and releases stay the user's. Its answer comes back in your frame as an AGENT MESSAGE. The user sees both.

NameTypeReqDescription
conversationstringyes–
textstringyes–

No output schema declared.

No examples provided.

orient ~91

One-call orientation for a task: repo profile + top ranked symbols/snippets from the code graph in Imperal's vault. Call FIRST instead of scanning files blind. `target`: local (default), ssh:<connection_id> or host:<alias> with `root` = the repo path there.

NameTypeReqDescription
kinteger––
querystringyes–
root–––
target–––

No output schema declared.

No examples provided.

outline ~53

Tree-sitter structural map of a source file (classes, functions, methods, major blocks with exact line ranges). Call before reading large files.

NameTypeReqDescription
pathstringyes–
root–––
target–––

No output schema declared.

No examples provided.

read_symbol ~64

Read ONE symbol (function, class, Class.method, block name) or line range ('L120-180') from a file without loading the whole file.

NameTypeReqDescription
namestringyes–
pathstringyes–
root–––
target–––

No output schema declared.

No examples provided.

recall ~85

A past request or answer whole (ref = A<seq> / U<seq> / last_answers / all) -- of your session, or of another conversation of yours by its id (``conversation``, as search_history names it).

NameTypeReqDescription
conversationstring––
ninteger––
offsetinteger––
refstringyes–

No output schema declared.

No examples provided.

recall_context ~75

Retrieve relevant user directives, preferences, and repository notes from Imperal Cloud Memory across Webbee, Telegram, and the Panel.

NameTypeReqDescription
include_repo_memoryboolean––
include_resolvedboolean––
include_user_factsboolean––
limitinteger––
querystringyes–

No output schema declared.

No examples provided.

remember_fact ~55

Persist a durable user fact, architectural decision, or standing directive to Imperal Cloud Memory (shared across all surfaces).

NameTypeReqDescription
categorystring––
factstringyes–
scope–––
tags–––

No output schema declared.

No examples provided.

repo_profile ~39

Structured profile of the repository (languages, file count, the most-used definitions) from the code graph.

NameTypeReqDescription
root–––
target–––

No output schema declared.

No examples provided.

run_read_tool ~76

Run a READ-only tool of a deployed app (refuses write/destructive). ``function`` is the tool's name as get_app lists it (``tool`` is taken as the same).

NameTypeReqDescription
app_idstringyes–
args–––
functionstring––
toolstring––

No output schema declared.

No examples provided.

run_write_tool ~111

Run a WRITE or DESTRUCTIVE tool of a deployed app. Money tools always go through out-of-band panel approval (never terminal consent or autopilot): re-run this tool after approving in the panel to complete. Write runs directly; destructive requires human consent (elicitation) or session autopilot; read tools are refused (use run_read_tool).

NameTypeReqDescription
app_idstringyes–
args–––
functionstring––
toolstring––

No output schema declared.

No examples provided.

save_repo_note ~45

Save a durable repository convention or architectural note to Imperal Cloud Memory.

NameTypeReqDescription
citations–––
notestringyes–
repo–––
root–––

No output schema declared.

No examples provided.

search_code ~69

Search the code graph: exact names, words and meaning (each hit says how sure it is). Prefer over grep/find.

NameTypeReqDescription
kinteger––
kind–––
path_glob–––
querystringyes–
root–––
target–––

No output schema declared.

No examples provided.

search_history ~78

Your past conversations that hold ``query`` -- Webbee, the panel, Telegram, other shells' sessions; each hit names its conversation and message, and recall(ref, conversation=...) opens it whole. Nothing of another conversation enters your frame by itself: ask here.

NameTypeReqDescription
limitinteger––
querystringyes–

No output schema declared.

No examples provided.

smoke_ir ~50

Run one function of an app.ir.json in an ISOLATED store and report {ok,result,trace}.

NameTypeReqDescription
app_irobjectyes–
args–––
functionstringyes–

No output schema declared.

No examples provided.

state_lens ~106

What the kernel holds for your session, by section (law, plan, reality, memory, conversation, path) -- where the frame's counted lines point. ``conversation``: another session of yours working now (an id live_sessions names, e.g. Webbee's) -- its state, its running turn's steps included.

NameTypeReqDescription
conversationstring––
focusstring––
offsetinteger––
sectionstring––

No output schema declared.

No examples provided.

task ~69

Declare what you were asked and your plan (items: {content, status: pending|in_progress|completed}) -- the kernel's frame holds you to it: an item is proven only by what the kernel measured.

NameTypeReqDescription
goalstringyes–
items–––
root–––

No output schema declared.

No examples provided.

token_savings ~24

Return measured characters and lines returned vs. full-file baseline in this session.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

upload_file ~146

Send a file from THIS machine into Imperal and get its ids back. Read the file straight off disk -- never paste its bytes into a tool call, that is truncated long before it reaches the gateway. Returns {file_id, document_id, filename, size_bytes, status}. To then PLACE that file into any extension (a task attachment, an envelope, a post), call run_write_tool with the sink's own file argument set to {"document_id": <document_id>}: the gateway swaps the reference for the real bytes on the way in, so the file never travels through this conversation.

NameTypeReqDescription
name–––
pathstringyes–

No output schema declared.

No examples provided.

validate_ir ~31

Validate an app.ir.json locally (envelope + every declarative step).

NameTypeReqDescription
app_irobjectyes–

No output schema declared.

No examples provided.

vault_log_read ~59

An output the kernel kept in the vault (ref = vault://logs/...), paged or grepped.

NameTypeReqDescription
grepstring––
limitinteger––
offsetinteger––
refstringyes–

No output schema declared.

No examples provided.

Install

How do I install the Imperal MCP server?

Imperal MCP runs locally as a PyPI package, launched with uvx imperal-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · imperal-mcp

# add to Claude Code
claude mcp add imperalcloud-imperal-mcp -- uvx imperal-mcp
Common questions

What is the Imperal MCP server?

Imperal MCP is listed in the public MCP registry as io.github.imperalcloud/imperal-mcp. Build, validate, smoke-test & deploy Imperal declarative IR apps from any LLM or agent. This page covers its PyPI package (imperal-mcp).

Is the Imperal MCP server safe to use?

Imperal MCP scores 54 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Imperal MCP server expose?

Imperal MCP exposes 34 tools: validate_ir, smoke_ir, deploy_ir, list_apps, get_app, and 29 more. Their descriptions and schemas cost roughly 2,250 tokens of context every time the server is loaded.

Is the Imperal MCP server still maintained?

Imperal MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Imperal MCP server under?

Imperal MCP declares the GPL-3.0-only licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

What did VerifyMCP test on the Imperal MCP server?

VerifyMCP ran 15 checks on Imperal MCP, covering Known CVEs, Install scripts, Dependency health, Source repository and 11 more. One item could not be completed, a gap on our side rather than a finding about Imperal MCP: Malware scan. Endpoint Security and Transport & Reachability do not apply to a PyPI package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.