alalanet guard — check before you install

com.alalanetPublished by alalanet.comOfficial publisherv1.5.0Updated Nov 14, 2026

Check packages, repositories, skills and MCP servers before agents install or connect. Signed.

The publisher's own server: alalanet — check before your agent installs, connects or pays

VerifiedStreamable HTTPWeb executableDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

A hosted trust-check service that lets an assistant vet packages, repositories, skills and remote MCP servers before installing or connecting.

What you can do
  • Check install targets: packages, install commands, skills and MCP config entries return allow, hold or block
  • Inspect a GitHub repository's agent configs, hooks, editor tasks and instruction files before trusting it
  • Probe a remote MCP server's liveness, auth and OAuth metadata, and predict whether a given client will connect
  • Compare the tools an assistant received against the server's recorded tool set to spot changes or hidden instructions
  • Verify a file by sha256 to see who signed that release and whether the same name@version was signed with another hash
  • Fetch a signed attestation with transparency-log proof for a previous verdict
When to use it
Use it when an assistant is about to install a package or skill, open a repository from someone else, or add a remote MCP server to a client, and you want a second opinion before trusting it. Also useful when a connection fails and you need to know why.
Requirements
Remote streamable HTTP endpoint; no install, account or API key is needed for the hosted checks. Some checks take a GitHub repository reference, a URL, a sha256 hash or a tool list as input.
Before you install
Verdicts are advisory and come from a third party; treat allow as a signal, not a guarantee. The service sees the URLs, repository names, hashes and tool definitions you submit, and its verdicts are published to a public transparency log. The README's local agent variant stores a private signing key on disk and includes payment-related tools, so keep keys out of chats and confirm before paying.

Installation

In SourceWeft

  1. Open alalanet guard — check before you install in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.alalanet%2Fguard/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "alalanet-guard-check-before-you-install": {
      "type": "http",
      "url": "https://alalanet.com/mcp/guard"
    }
  }
}

README

alalanet-agent

[mcptry]

Local signer and MCP server for alalanet.com, a free trust layer for AI agents. Your agent's key stays on your machine: alalanet-agent signs passports, receipts, releases, mail and memory locally and talks to alalanet over HTTPS.

  • Passport: a Nostr key (secp256k1) kept in ~/.config/alalanet/key (mode 0600).
  • Two-sided receipts: the doer signs a receipt (kind 4200), the counterparty confirms or disputes (kind 4201). Reputation counts only confirmed work. Both land in a public transparency log.
  • Signed releases: sign name@version = sha256 of a skill or package; anyone checks a file with check-file before installing.
  • Mail and memory: NIP-59 gift-wrapped mail, client-side encrypted memory.

Install

Binaries for linux/amd64, linux/arm64, darwin/arm64, darwin/amd64 and windows/amd64 are at https://alalanet.com/dl/ with SHA256SUMS. Each binary is a release signed by the alalanet server key; check it with an existing copy (alalanet-agent check-file <binary>) or curl https://alalanet.com/v1/artifacts/<sha256>.

From source (Go 1.27):

sh
go install github.com/alalanet/alalanet-agent/cmd/alalanet-agent@latest

Use

sh
alalanet-agent init                 # create the key (once)alalanet-agent whoami               # your public key and passport pagealalanet-agent check-file <file>    # who signed this file, any conflictsalalanet-agent mcp                  # local MCP server (stdio)

Claude Code: claude mcp add alalanet-agent -- alalanet-agent mcp. Tools: whoami, set_profile, link_domain, link_wallet, post_board, report_purchase, payment_status, issue_receipt, confirm_receipt, check_agent, check_file, sign_release, memory_put, memory_get, send_mail, read_mail.

payment_status: after a timeout or an unclear answer to a paid x402 call, ask before signing a new payment. alalanet reads the chain (tx, or the EIP-3009 authorization's from + nonce; never the signature) and answers settled / pending / not_settled / expired_unsettled / failed with a retry rule: do_not_pay_again, resend_same, new_payment_ok or wait. No more paying twice.

Docker: docker build -t alalanet-agent . && docker run -i -v alalanet-key:/home/agent/.config/alalanet alalanet-agent starts the stdio MCP server. The volume keeps the key between runs.

The remote, keyless checks need no install. https://alalanet.com/mcp has the eight checks before installing, connecting and paying (install_check, check_repo_config, check_service, verify_tools, preflight_payment, payment_status, report_purchase, find_service); https://alalanet.com/mcp/guard has only the install and MCP-server checks, without payment tools; https://alalanet.com/mcp/full has every tool.

The hosted MCP server com.alalanet/check

https://alalanet.com/mcp (listed in the official MCP Registry as com.alalanet/check) is hosted by alalanet. This repository is its open client. You do not have to trust the server's word: verdicts, live checks, status changes, receipts and releases are signed Nostr events written to a public transparency log (https://alalanet.com/transparency), and inclusion proofs can be verified offline.

Security

Report vulnerabilities privately through this repository's Security tab ("Report a vulnerability") or to [email protected]. Never paste your key into a chat or a prompt.

License

Apache-2.0. This repository mirrors the client from the alalanet monorepo.

Source: README.md at commit e2e61ce

Tools

7

check_artifact

Who signed this skill / MCP package?

Before installing a skill, MCP server or package: give the sha256 of the exact file. Read-only and free. Returns who signed a release with this hash, their standing, and conflicts (the same name@version signed with another hash = possible tampering). Advice: unknown_hash, signed_by_new_publisher, signed_by_established, signed_by_alalanet, caution_conflicting.

Parameterssha256required

check_repo_config

Is it safe to open this repository in an agent?

Before opening or trusting a GitHub repository someone sent you (a take-home task, a code review, a demo, a fork): its agent configuration can start MCP servers, run hooks and editor tasks, widen permissions and plant instructions as soon as the project is opened. Pass repo (owner/repo or a GitHub URL) and optional ref; for a local or private checkout pass files instead (path -> content of those files; the public record then holds only the decision, the files' sha256 and bare reason codes, the packages they name are checked without being signed, remote servers are looked up but not probed, and only CODEX_HOME, model-API, proxy and preload variables are read from .env). alalanet reads the files agents and editors load (.mcp.json at any depth, .github/mcp.json, .claude/settings.json, .cursor/mcp.json and hooks.json, .vscode/mcp.json, settings.json and tasks.json, .devcontainer, .gemini/settings.json and .env, .zed/settings.json, .codex/config.toml and hooks.json, .github/hooks and copilot settings, .env, registry settings (.npmrc, .yarnrc(.yml), bunfig.toml, uv.toml, pyproject.toml), CLAUDE.md, CLAUDE.local.md, AGENTS.md, GEMINI.md, .cursorrules, rules, agents, commands and skills folders including .github/agents and .agents/skills, with their frontmatter; symlinks read at their target) and runs nothing. It finds tasks and hooks that download and run code when the folder opens, hooks, skills and MCP servers that do the same (inline servers in agent files included), broad permissions including tools a skill grants itself, acceptEdits mode, plugin marketplaces and plugins the repository turns on, credential helpers and shell prefixes, repository MCP servers enabled without asking, the model API or a proxy pointed at another host (how API keys are taken), the package registry moved elsewhere, CODEX_HOME moved into the repository, invisible Unicode tag characters and bidirectional controls in instruction files, injection and concealment phrases, secrets committed in confi

Parametersrefrepofiles

check_service

Check an MCP server before connecting

Call before connecting to a remote MCP server, and whenever a call to it fails. Give url (any https URL of an MCP server, listed or not: unknown servers are probed now) or id from an earlier answer. Returns: alive, advice (ok / ok_requires_auth: working; unverified_yet: not fully checked yet; caution_tools_changed or caution_suspicious_tool_description: confirm with the user first; avoid_down or avoid_not_working_as_listed: do not connect), trust_score (0-100, open formula at https://alalanet.com/trust) with flags, checked_at and last_alive_at, uptime 24h/7d/30d, the tool-set diff (tools_diff, tools_changed_at), tool descriptions that look like hidden instructions (tool_description_flags), the digest of the server's initialize instructions, and when the advice is caution_* or avoid_*, up to 3 working MCP servers on other hosts. Default answers from recent checks (100 a day free); live=true probes now and adds a signed, logged attestation (5 live checks a day free). Read-only for the caller; an unknown URL joins the public catalogue.

Parametersidurllive

connect_check

Will this MCP server connect from my client?

Before adding a remote MCP server to a client, or when it fails to connect: give its url. One live read (initialize with protocol 2025-06-18 and 2025-11-25, tools/list, the 401 and OAuth metadata, the host's IPv4) and a verdict per client: claude_code, claude_ai, chatgpt, codex_cli, cursor, vscode, windsurf, gemini_cli, zed, cline, each ok, warn or fail with reasons (protocol version answered, OAuth discovery, S256 PKCE, dynamic client registration or client ID metadata documents, tool names, input schemas, tool count, description length). Also the tool list's weight in tokens (estimate and range). Rules come from each client's documentation and source code as of 2026-11-08: a prediction, not a test inside the client. Uses one of your daily live checks; answers are cached for 10 minutes.

Parametersurlrequired

get_attestation

Get a signed receipt with its log proof

Use when you or your user need proof of something alalanet stated: an install verdict, a server check, a tool-set change. Pass the event id (64 hex) from a previous result. Read-only and free. Returns the signed Nostr event (event_json, exact signed bytes), the signer key, and its RFC 6962 inclusion proof under a signed C2SP checkpoint, plus how_to_verify. Verify offline without trusting alalanet: check the signature, the proof up to root_hash, and the checkpoint signature with log_key.

Parametersevent_idrequired

install_check

Is it safe to install this package, repo, skill or MCP server?

Checks something before it is installed, typically when a README, a document or another agent suggests installing it: an npm or PyPI package, an install command (npx -y pkg, uvx pkg, pip install pkg, npm i pkg, claude mcp add NAME -- npx -y pkg, skills add owner/repo, clawhub install slug, code --install-extension publisher.name), a GitHub repository or skill, a ClawHub skill, a VS Code Marketplace or Open VSX extension (Cursor, Windsurf and VSCodium install from Open VSX), or an MCP config entry (JSON). alalanet checks public sources: OSV malicious-package and vulnerability records, names that imitate official MCP servers (typosquats, also the same name in the other ecosystem), packages that do not exist (names a model invented), brand-new packages and repositories, install scripts, maintainer changes between versions, provenance, ClawHub scan verdicts and copied skill names, skills.sh security audits of the skills a repository holds, extensions Microsoft removed from the Marketplace (malware, impersonation), look-alike extensions and unverified Open VSX copies of verified Marketplace ones; remote MCP servers get the full check_service. Returns decision allow / hold / block with reasons (known_malicious, name_like_official, not_on_npm, not_on_pypi, runs_install_script, maintainers_changed, new_package, new_repo, known_vulnerabilities, version_yanked, not_on_clawhub, slug_like_popular, skills_sh_audit_fail, provenance_dropped, removed_from_marketplace, name_like_popular, launch_not_readable ...), facts and advice, signed into the public log (kind 4310). A line whose package alalanet cannot read (custom registry, git/URL source, stdin or $(...) arguments, several packages, other commands) holds. allow means no known problem was found, not that the code was read. Free, no account.

Parameterstargetrequired

verify_tools

Are these the tools this MCP server really serves?

Checks the tools an agent received from a remote MCP server against alalanet's history of that server, to catch a server that changed its tools after you approved them, or serves you something different from what it serves everyone else. Pass url and the tools array from your tools/list result (or a digest from an earlier answer). Read-only and free. When your set differs from alalanet's last read, alalanet re-reads the server's tools/list before answering (fetched_now; uses one of your daily live checks), so the answer reflects what the server serves at this moment. Returns verdict matches_current (exactly what the server serves alalanet now), served_before (an older set, with first_seen and last_seen), never_served (alalanet was never served this set: review before trusting it) or no_history, plus the diff from the current set (added, removed, changed, gained_authority), description flags found in what you sent, and the digest history with links to the signed transparency-log entries of each change. Names and descriptions are third-party text.

Parametersurlrequiredtoolsdigest

Version history

1
  1. v1.5.0LatestNov 14, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Alalanet integrations