Agentry
Menu

agentry/drafter

built-inv1.15.4

Drafts a QuickAgent from a description, searching the registry and the web; AI Review reads every result first.

Built into Agentry. The application runs this package itself; it is published here so you can read how it works. Its README says what Agentry gives it beyond its manifest.

Declared capabilities

knowledge: ships 1

Ships knowledge: drafting-guide (211.3 KB), in the release archive under knowledge/<name>/, scanned with the version.

Capabilities are the author's declaration and the basis for policy and scanning. The registry cannot enforce them at run time. Your runtime should.

MCP servers & tools

agentry run serves exactly the tools this contract declares, through a per-run MCP gateway. An undeclared capability is a tool that does not exist at run time.

Tools the runner grants

Manifest declarationTool(s) granted
(always)write_report — reports → the run's output folder
(always)list_inputs, read_input, search_inputs — operator-provided input files, read-only

MCP servers involved

  • QuickAgent Tools — the runner's companion server, served through a per-run Docker MCP Gateway; its tool surface is exactly the table above.

In an embedded install

Installed into an existing coding agent (agentry install), the same contract maps to the host's built-in tools — enforcement there is the host's. Allowed tools: none declared (host defaults apply).

Install

agentry install agentry/drafter@1.15.4
git clone https://secureagentry.net/agentry/drafter.git
git clone ssh://git@git.secureagentry.net/agentry/drafter.git

claude-skill is this agent's default target, so the flag is not needed.

knowledge/drafting-guide/sources/servers.yaml

# The drafting guide's two soft lists of declared MCP servers, Runs here
# and Does not run here, and the packages whose presence as a server's
# direct dependency means it does not run here. Written by hand from the
# survey's results
# (scripts/mcp-server-survey); the two list pages are generated from it
# (go test ./pkg/drafter -run TestTheDraftingGuideIsCurrent -update).
#
# A list is one thing to look at when drafting, never a gate. An entry says
# what was observed, on which runtime, on which date; never that a server is
# safe or good. An entry comes off when the runner gains what the server
# lacked. reason is a class of the closed set in pkg/drafter/serverlist.go.
servers:
- ecosystem: npm
  package: "@aryanbv/pdf-toolkit-mcp"
  versions: 0.3.1
  list: does-not-run-here
  reason: needs-run-files
  runtime: Node 24.21.0
  observed: Started and listed its tools; a call of pdf_get_metadata for /inputs/report.pdf returned FILE_NOT_FOUND. Every tool takes a local file path, and none of the run's files are in its container.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@azure/mcp"
  versions: 3.0.0-beta.49
  list: does-not-run-here
  reason: musl-native
  runtime: Node 24.21.0
  observed: "Installed; at start it failed to run its bundled program (spawn …/azmcp ENOENT): azmcp is built for glibc (its interpreter is /lib64/ld-linux-x86-64.so.2), and the runtime image is musl. It is also started with a subcommand (server start), which the runner does not pass."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@bytebase/dbhub"
  versions: 1.4.0
  list: does-not-run-here
  reason: non-443-port
  runtime: Node 24.21.0
  observed: Installed; exited at start asking for a database connection (--dsn, --demo, or DSN). A DSN can be given in env, but the databases it connects to listen on their own ports (5432, 3306, …), which a declared server cannot reach.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/sdk"
  versions: 1.32.1
  list: does-not-run-here
  reason: not-a-server
  runtime: Node 24.21.0
  observed: "Not resolved: the package declares no bin. It is the MCP TypeScript SDK, a library for writing servers, and was declared by a published dev release as if it were a server."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-filesystem"
  versions: 2026.8.31
  list: does-not-run-here
  reason: needs-run-files
  runtime: Node 24.21.0
  observed: Started and listed its tools. Its tools read and write local directories, and none of the run's files are in its container.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-gdrive"
  versions: 2025.1.14
  list: does-not-run-here
  reason: oauth-browser
  runtime: Node 24.21.0
  observed: "Installed; exited at start: Credentials not found. Please run with 'auth' argument first. It signs in through a browser and keeps a credentials file."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-gitlab"
  versions: 2025.4.25
  list: does-not-run-here
  reason: invalid-tool-schema
  runtime: Node 24.21.0
  observed: "Installed and started, and the runner's gateway stopped with a panic reading its tools (create_or_update_file: input schema must have type \"object\"), so no server in the run would have been served."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-postgres"
  versions: 0.6.2
  list: does-not-run-here
  reason: needs-arguments
  runtime: Node 24.21.0
  observed: "Installed; exited at start: Please provide a database URL as a command-line argument. The database would also be on port 5432, which a declared server cannot reach."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-puppeteer"
  versions: 2025.5.12
  list: does-not-run-here
  reason: spawns-binary
  runtime: Node 24.21.0
  observed: "Started and listed its tools; a call of puppeteer_navigate failed: Could not find Chrome. Puppeteer downloads its browser in an install script, which does not run here, and the container has no browser. Archived by its authors."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-redis"
  versions: 2025.4.25
  list: does-not-run-here
  reason: non-443-port
  runtime: Node 24.21.0
  observed: Installed; at start it tried redis://localhost:6379 and kept retrying. Redis listens on its own port (6379), which a declared server cannot reach, and the URL is a command-line argument.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@playwright/mcp"
  versions: 0.0.83
  list: does-not-run-here
  reason: spawns-binary
  runtime: Node 24.21.0
  observed: "Started and listed its tools; a call of browser_navigate failed: Chromium distribution 'chrome' is not found. The container has no browser."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@wonderwhy-er/desktop-commander"
  versions: 0.2.52
  list: does-not-run-here
  reason: needs-run-files
  runtime: Node 24.21.0
  observed: Started and listed its tools. Its tools run shell commands and edit local files, and none of the run's files are in its container; the shell it reaches is the server container's own.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: agentation-mcp
  versions: 1.3.2
  list: does-not-run-here
  reason: needs-arguments
  runtime: Node 24.21.0
  observed: Installed; started without the server subcommand it needs and wrote text, not MCP, to its output, so the gateway could not initialize it.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: chrome-devtools-mcp
  versions: 1.10.1
  list: does-not-run-here
  reason: spawns-binary
  runtime: Node 24.21.0
  observed: Started and listed its tools; a call of new_page failed to launch Chrome. The container has no browser, and the server's container runs as root, which Chrome's sandbox refuses.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: mongodb-mcp-server
  versions: 3.0.5
  list: does-not-run-here
  reason: non-443-port
  runtime: Node 24.21.0
  observed: Started and listed its tools. Its database tools connect through a MongoDB connection string on port 27017, which a declared server cannot reach.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: next-devtools-mcp
  versions: 0.4.0
  list: does-not-run-here
  reason: non-443-port
  runtime: Node 24.21.0
  observed: Started and listed its tools. It connects to a running Next.js dev server on the same machine, which a declared server cannot reach.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: blender-mcp
  versions: 2.0.0
  list: does-not-run-here
  reason: non-443-port
  runtime: Python 3.12.14
  observed: Started and listed its tools. They work by talking to the Blender add-on's socket on localhost:9876, which a declared server cannot reach.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: lean-lsp-mcp
  versions: 0.31.0
  list: does-not-run-here
  reason: spawns-binary
  runtime: Python 3.12.14
  observed: Started and listed its tools. They run Lean's own programs (lake, the language server) on a local project, and the container has neither.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: mcp-for-blender
  versions: 2.1.8
  list: does-not-run-here
  reason: non-443-port
  runtime: Python 3.12.14
  observed: Started and listed its tools. They work by talking to the Blender add-on's socket on the same machine, which a declared server cannot reach.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: mcp-grafana
  versions: 2.0.0
  list: does-not-run-here
  reason: writes-own-tree
  runtime: Python 3.12.14
  observed: "Installed; exited at start with OSError: Read-only file system: it marks its bundled program executable inside its own installed files, which are read-only."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: mcp-server-git
  versions: 2026.8.18
  list: does-not-run-here
  reason: spawns-binary
  runtime: Python 3.12.14
  observed: "Installed; exited at start with ImportError: Bad git executable. It works through GitPython, which runs the git program, and the container has none. It also works on local repositories, which are not in its container."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: mcp-server-sentry
  versions: 2025.1.14
  list: does-not-run-here
  reason: broken-upstream
  runtime: Python 3.12.14
  observed: "Installed; exited at start with ModuleNotFoundError: No module named 'httpx'. It imports a package it does not declare, which its dependencies no longer bring in. Archived by its authors; @sentry/mcp-server is on Runs here."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: mcp-server-sqlite
  versions: 2025.4.25
  list: does-not-run-here
  reason: broken-upstream
  runtime: Python 3.12.14
  observed: "Installed; exited at start with AttributeError: 'Server' object has no attribute 'list_resources'. Its unpinned mcp dependency installs a version whose API it no longer matches. It also works on a local database file."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: postgres-mcp
  versions: 0.3.0
  list: does-not-run-here
  reason: broken-upstream
  runtime: Python 3.12.14
  observed: "Installed; exited at start with ModuleNotFoundError: No module named 'mcp.server.fastmcp': its unpinned mcp dependency installs mcp 2.x, which renamed that module. The database would also be on port 5432."
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@cyanheads/osv-advisory-mcp-server"
  versions: 0.1.15
  list: runs-here
  runtime: Node 24.21.0
  observed: Started and listed its tools with no key; a call of osv_query_package for flask 0.12 on PyPI returned its advisories through api.osv.dev. Every published version (0.1.0 to 0.1.15) declares engines.node >=24.0.0. Installed by hand on Node 22.23.2 the same day, 0.1.14 and 0.1.15 failed every call (Promise.try is not a function) while 0.1.7 to 0.1.13 answered.
  tools:
  - osv_get_vulnerability
  - osv_list_ecosystems
  - osv_query_batch
  - osv_query_package
  conditions:
  - "egress: api.osv.dev"
  - no key
  evidence: survey 2026-10-05; Node 22.23.2 installs by hand the same day
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-brave-search"
  versions: 0.6.2
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed its tools; not called. Archived by its authors.
  tools:
  - brave_local_search
  - brave_web_search
  conditions:
  - "secrets: BRAVE_API_KEY"
  - "egress: api.search.brave.com"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-everart"
  versions: 0.6.2
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed its one tool; not called. Archived by its authors.
  tools:
  - generate_image
  conditions:
  - "secrets: EVERART_API_KEY"
  - "egress: api.everart.ai"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-everything"
  versions: 2026.8.31
  list: runs-here
  runtime: Node 24.21.0
  observed: "Started and a call of echo answered. It is the MCP project's test server: its tools are demonstrations, not a task's."
  tools:
  - echo
  - get-annotated-message
  - get-env
  - get-resource-links
  - get-resource-reference
  - get-roots-list
  - get-structured-content
  - get-sum
  - get-tiny-image
  - gzip-file-as-resource
  - simulate-research-query
  - toggle-simulated-logging
  - toggle-subscriber-updates
  - trigger-elicitation-request
  - trigger-long-running-operation
  - trigger-sampling-request
  conditions:
  - no network, no key
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-github"
  versions: 2025.4.8
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed its tools; not called. Its authors have archived it; github-mcp-server-js is also on this list.
  tools:
  - add_issue_comment
  - create_branch
  - create_issue
  - create_or_update_file
  - create_pull_request
  - create_pull_request_review
  - create_repository
  - fork_repository
  - get_file_contents
  - get_issue
  - get_pull_request
  - get_pull_request_comments
  - get_pull_request_files
  - get_pull_request_reviews
  - get_pull_request_status
  - list_commits
  - list_issues
  - list_pull_requests
  - merge_pull_request
  - push_files
  - search_code
  - search_issues
  - search_repositories
  - search_users
  - update_issue
  - update_pull_request_branch
  conditions:
  - "secrets: GITHUB_PERSONAL_ACCESS_TOKEN"
  - "egress: api.github.com"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-google-maps"
  versions: 0.6.2
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed its tools; not called. Archived by its authors.
  tools:
  - maps_directions
  - maps_distance_matrix
  - maps_elevation
  - maps_geocode
  - maps_place_details
  - maps_reverse_geocode
  - maps_search_places
  conditions:
  - "secrets: GOOGLE_MAPS_API_KEY"
  - "egress: maps.googleapis.com"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-memory"
  versions: 2026.8.31
  list: runs-here
  runtime: Node 24.21.0
  observed: "Started and a call of read_graph answered. By default it writes its memory file into its own installed files, which are read-only: in two runs the same day, create_entities failed with EROFS, and with MEMORY_FILE_PATH under /tmp it succeeded. The memory lasts only for the run."
  tools:
  - add_observations
  - create_entities
  - create_relations
  - delete_entities
  - delete_observations
  - delete_relations
  - open_nodes
  - read_graph
  - search_nodes
  conditions:
  - "env: MEMORY_FILE_PATH: /tmp/memory.jsonl (without it, every write fails)"
  - no network, no key
  evidence: survey 2026-10-05; create_entities runs with and without MEMORY_FILE_PATH the same day
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-sequential-thinking"
  versions: 2026.8.31
  list: runs-here
  runtime: Node 24.21.0
  observed: Started and a call of sequentialthinking answered.
  tools:
  - sequentialthinking
  conditions:
  - no network, no key
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@modelcontextprotocol/server-slack"
  versions: 2025.4.25
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with placeholder keys and listed its tools; not called. Archived by its authors.
  tools:
  - slack_add_reaction
  - slack_get_channel_history
  - slack_get_thread_replies
  - slack_get_user_profile
  - slack_get_users
  - slack_list_channels
  - slack_post_message
  - slack_reply_to_thread
  conditions:
  - "secrets: SLACK_BOT_TOKEN, SLACK_TEAM_ID"
  - "egress: slack.com"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@notionhq/notion-mcp-server"
  versions: 2.5.2
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed its tools; not called.
  tools:
  - API-create-a-comment
  - API-create-a-data-source
  - API-delete-a-block
  - API-get-block-children
  - API-get-self
  - API-get-user
  - API-get-users
  - API-list-data-source-templates
  - API-move-page
  - API-patch-block-children
  - API-patch-page
  - API-post-page
  - API-post-search
  - API-query-data-source
  - API-retrieve-a-block
  - API-retrieve-a-comment
  - API-retrieve-a-data-source
  - API-retrieve-a-database
  - API-retrieve-a-page
  - API-retrieve-a-page-property
  - API-retrieve-page-markdown
  - API-update-a-block
  - API-update-a-data-source
  - API-update-page-markdown
  conditions:
  - "secrets: NOTION_TOKEN"
  - "egress: api.notion.com"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@sentry/mcp-server"
  versions: 0.42.0
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed its tools; not called.
  tools:
  - analyze_issue_with_seer
  - execute_sentry_tool
  - find_organizations
  - find_projects
  - get_sentry_resource
  - search_events
  - search_issues
  - search_sentry_tools
  - update_issue
  conditions:
  - "secrets: SENTRY_ACCESS_TOKEN"
  - "egress: sentry.io"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@supabase/mcp-server-supabase"
  versions: 0.13.0
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed its tools once both hosts were declared; with api.supabase.com alone, tools/list failed (fetch failed), because it also reads supabase.com when it lists its tools.
  tools:
  - apply_migration
  - confirm_cost
  - create_branch
  - create_project
  - delete_branch
  - deploy_edge_function
  - execute_sql
  - generate_typescript_types
  - get_advisors
  - get_cost
  - get_edge_function
  - get_organization
  - get_project
  - get_project_url
  - get_publishable_keys
  - list_branches
  - list_edge_functions
  - list_extensions
  - list_migrations
  - list_organizations
  - list_projects
  - list_tables
  - merge_branch
  - pause_project
  - query_logs
  - rebase_branch
  - reset_branch
  - restore_project
  - search_docs
  conditions:
  - "secrets: SUPABASE_ACCESS_TOKEN"
  - "egress: api.supabase.com and supabase.com"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: "@upstash/context7-mcp"
  versions: 4.1.1
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with no key; a call of resolve-library-id for React returned matching library IDs.
  tools:
  - query-docs
  - resolve-library-id
  conditions:
  - "egress: context7.com, mcp.context7.com"
  - no key for light use; CONTEXT7_API_KEY for more
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: firecrawl-mcp
  versions: 3.27.3
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed its tools; not called.
  tools:
  - firecrawl_agent
  - firecrawl_agent_status
  - firecrawl_check_crawl_status
  - firecrawl_crawl
  - firecrawl_credit_usage
  - firecrawl_developer_search
  - firecrawl_feedback
  - firecrawl_find_tools
  - firecrawl_interact
  - firecrawl_interact_stop
  - firecrawl_map
  - firecrawl_monitor_check
  - firecrawl_monitor_checks
  - firecrawl_monitor_create
  - firecrawl_monitor_delete
  - firecrawl_monitor_get
  - firecrawl_monitor_list
  - firecrawl_monitor_run
  - firecrawl_monitor_update
  - firecrawl_parse
  - firecrawl_research_inspect_paper
  - firecrawl_research_read_paper
  - firecrawl_research_related_papers
  - firecrawl_research_search_papers
  - firecrawl_scrape
  - firecrawl_search
  - firecrawl_search_feedback
  conditions:
  - "secrets: FIRECRAWL_API_KEY"
  - "egress: api.firecrawl.dev"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: frankfurter-mcp-server
  versions: 1.0.0
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with no key; a call of frankfurter_get_latest_rates for EUR returned the day's rates from api.frankfurter.dev.
  tools:
  - frankfurter_convert_currency
  - frankfurter_get_historical_rates
  - frankfurter_get_latest_rates
  - frankfurter_get_time_series
  - frankfurter_list_currencies
  conditions:
  - "egress: api.frankfurter.dev"
  - no key
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: github-mcp-server-js
  versions: 0.1.7
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed 77 tools with GITHUB_PERMISSION set to read-only; not called, since every call needs a real token.
  tools:
  - check_repo_starred
  - get_app
  - get_authenticated_user
  - get_branch
  - get_code_scanning_alert
  - get_codespace
  - get_commit
  - get_copilot_organization_details
  - get_copilot_seat_details_for_user
  - get_dependabot_alert
  - get_file_contents
  - get_gist
  - get_global_advisory
  - get_issue
  - get_meta
  - get_org
  - get_org_project
  - get_org_project_item
  - get_package_for_authenticated_user
  - get_package_version_for_authenticated_user
  - get_pull_request
  - get_rate_limit
  - get_repository
  - get_repository_advisory
  - get_secret_scanning_alert
  - get_team_by_name
  - get_tree
  - get_user_by_username
  - get_user_hovercard
  - get_workflow
  - get_workflow_run
  - list_branches
  - list_check_runs_for_ref
  - list_code_scanning_alerts
  - list_codespaces
  - list_comments
  - list_commits
  - list_copilot_seats
  - list_dependabot_alerts
  - list_emojis
  - list_gists
  - list_global_advisories
  - list_installation_repos_for_authenticated_user
  - list_installations_for_authenticated_user
  - list_issues
  - list_labels
  - list_labels_on_issue
  - list_notifications
  - list_org_members
  - list_org_project_fields
  - list_org_project_items
  - list_org_projects
  - list_org_repos
  - list_package_versions_for_authenticated_user
  - list_packages_for_authenticated_user
  - list_pull_request_commits
  - list_pull_request_files
  - list_pull_request_reviews
  - list_pull_requests
  - list_repository_advisories
  - list_secret_scanning_alerts
  - list_starred_repos
  - list_tags
  - list_team_members
  - list_teams
  - list_user_followers
  - list_user_following
  - list_workflow_run_artifacts
  - list_workflow_run_jobs
  - list_workflow_runs
  - list_workflows
  - render_markdown
  - search_code
  - search_commits
  - search_issues
  - search_repos
  - search_users
  conditions:
  - "secrets: GITHUB_TOKEN"
  - "egress: api.github.com"
  - "env: GITHUB_PERMISSION: read-only for the read-only tool set"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: hostinger-api-mcp
  versions: 2.7.3
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with a placeholder key and listed its tools; not called. The runner starts the bin named after the package; the package's other bins (hostinger-dns-mcp and the rest) cannot be chosen.
  tools:
  - execute
  - multi-execute
  - search
  conditions:
  - "secrets: API_TOKEN"
  - "egress: developers.hostinger.com"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: n8n-mcp
  versions: 2.91.0
  list: runs-here
  runtime: Node 24.21.0
  observed: Started with no key and listed its documentation tools; not called. Its tools that manage workflows need an n8n instance's address and key.
  tools:
  - get_node
  - get_template
  - search_nodes
  - search_templates
  - tools_documentation
  - validate_node
  - validate_workflow
  conditions:
  - "env and secrets: N8N_API_URL and N8N_API_KEY for the workflow tools"
  - "egress: the n8n instance's host, served on port 443"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: awslabs-aws-api-mcp-server
  versions: 1.5.6
  list: runs-here
  runtime: Python 3.12.14
  observed: Started with placeholder keys and listed its tools once servicereference.us-east-1.amazonaws.com was declared; without it, it exits at start (it reads that host's service list when it starts).
  tools:
  - call_aws
  - suggest_aws_commands
  conditions:
  - "secrets: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY; env: AWS_REGION"
  - "egress: servicereference.us-east-1.amazonaws.com and every AWS endpoint its commands call"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: awslabs-aws-documentation-mcp-server
  versions: 1.2.2
  list: runs-here
  runtime: Python 3.12.14
  observed: Started with no key; a call of search_documentation returned AWS documentation pages.
  tools:
  - read_documentation
  - read_sections
  - recommend
  - search_documentation
  - search_table
  conditions:
  - "egress: docs.aws.amazon.com, proxy.search.docs.aws.amazon.com"
  - no key
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: ha-mcp
  versions: 3.5.1
  list: runs-here
  runtime: Python 3.12.14
  observed: Started with a placeholder token and listed its tools once its URL and token were set; without them it exits at start. 107 newer releases need a newer Python, so 3.5.1 is the newest that admits Python 3.12.14.
  tools:
  - ha_backup_create
  - ha_backup_restore
  - ha_bulk_control
  - ha_call_service
  - ha_config_delete_dashboard
  - ha_config_get_automation
  - ha_config_get_dashboard
  - ha_config_get_script
  - ha_config_list_dashboards
  - ha_config_list_helpers
  - ha_config_remove_automation
  - ha_config_remove_helper
  - ha_config_remove_script
  - ha_config_set_automation
  - ha_config_set_dashboard
  - ha_config_set_helper
  - ha_config_set_script
  - ha_config_update_dashboard_metadata
  - ha_deep_search
  - ha_eval_template
  - ha_get_bulk_status
  - ha_get_card_documentation
  - ha_get_card_types
  - ha_get_dashboard_guide
  - ha_get_domain_docs
  - ha_get_logbook
  - ha_get_operation_status
  - ha_get_overview
  - ha_get_state
  - ha_search_entities
  conditions:
  - "env: HOMEASSISTANT_URL; secrets: HOMEASSISTANT_TOKEN"
  - "egress: the Home Assistant host, which must be served over HTTPS on port 443 at a name the run can reach (Home Assistant's own port, 8123, cannot be reached)"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: mcp-atlassian
  versions: 0.23.1
  list: runs-here
  runtime: Python 3.12.14
  observed: Started with a placeholder key and listed its tools; not called.
  tools:
  - jira_add_comment
  - jira_add_issues_to_sprint
  - jira_add_watcher
  - jira_add_worklog
  - jira_assign_issue
  - jira_batch_create_issues
  - jira_batch_create_versions
  - jira_batch_get_changelogs
  - jira_create_customer_request
  - jira_create_issue
  - jira_create_issue_link
  - jira_create_remote_issue_link
  - jira_create_sprint
  - jira_create_version
  - jira_delete_issue
  - jira_download_attachments
  - jira_edit_comment
  - jira_get_agile_boards
  - jira_get_all_projects
  - jira_get_board_issues
  - jira_get_create_fields
  - jira_get_cross_project_dependencies
  - jira_get_field_options
  - jira_get_issue
  - jira_get_issue_dates
  - jira_get_issue_development_info
  - jira_get_issue_images
  - jira_get_issue_proforma_forms
  - jira_get_issue_sla
  - jira_get_issue_watchers
  - jira_get_issues_development_info
  - jira_get_link_types
  - jira_get_proforma_form_details
  - jira_get_project_components
  - jira_get_project_epic_hierarchy
  - jira_get_project_fields
  - jira_get_project_issue_types
  - jira_get_project_issues
  - jira_get_project_versions
  - jira_get_queue_issues
  - jira_get_request_type_fields
  - jira_get_request_types
  - jira_get_service_desk_for_project
  - jira_get_service_desk_queues
  - jira_get_sprint_issues
  - jira_get_sprints_from_board
  - jira_get_transitions
  - jira_get_user_profile
  - jira_get_worklog
  - jira_link_to_epic
  - jira_move_issue
  - jira_move_issues_to_backlog
  - jira_remove_issue_link
  - jira_remove_watcher
  - jira_search
  - jira_search_assignable_users
  - jira_search_fields
  - jira_search_projects
  - jira_transition_issue
  - jira_update_issue
  - jira_update_proforma_form_answers
  - jira_update_sprint
  - jira_update_version
  conditions:
  - "env: JIRA_URL, JIRA_USERNAME (and the Confluence equivalents)"
  - "secrets: JIRA_API_TOKEN (and CONFLUENCE_API_TOKEN)"
  - "egress: the site's host, such as <site>.atlassian.net"
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: mcp-server-fetch
  versions: 2026.8.18
  list: runs-here
  runtime: Python 3.12.14
  observed: Started and a call of fetch for https://example.com/ returned the page as Markdown. It reads the site's robots.txt from the same host first.
  tools:
  - fetch
  conditions:
  - "egress: every host it will fetch from, each on port 443"
  - no key
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: pypi
  package: mcp-server-time
  versions: 2026.8.18
  list: runs-here
  runtime: Python 3.12.14
  observed: Started and a call of get_current_time for UTC answered.
  tools:
  - convert_time
  - get_current_time
  conditions:
  - no network, no key
  evidence: survey 2026-10-05
  date: 2026-10-05
dependencies:
- ecosystem: pypi
  package: gitpython
  reason: spawns-binary
  observed: It runs the git program, which the container does not have; mcp-server-git exited at start.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: simple-git
  reason: spawns-binary
  observed: It runs the git program, which the container does not have. No surveyed server depends on it; listed for the cause GitPython showed.
  evidence: survey 2026-10-05 (inferred)
  date: 2026-10-05
- ecosystem: npm
  package: puppeteer
  reason: spawns-binary
  observed: It needs a browser, which it downloads in an install script that does not run here; @modelcontextprotocol/server-puppeteer could not navigate.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: playwright
  reason: spawns-binary
  observed: It needs a browser, which the container does not have; @playwright/mcp could not navigate.
  evidence: survey 2026-10-05
  date: 2026-10-05
- ecosystem: npm
  package: playwright-core
  reason: spawns-binary
  observed: It needs a browser, which the container does not have; it is the core of the playwright package, which @playwright/mcp uses.
  evidence: survey 2026-10-05 (inferred)
  date: 2026-10-05
- ecosystem: pypi
  package: playwright
  reason: spawns-binary
  observed: It needs a browser, which the container does not have. No surveyed server depends on it; listed for the cause the npm package showed.
  evidence: survey 2026-10-05 (inferred)
  date: 2026-10-05
runtimes:
- image: ghcr.io/blaktron/agentry-node-alpine:24-alpine
  user: root
  home: /root
  observed: A server starts as the image's own user. HOME and /tmp are writable; writes there are discarded when the run ends.
  programs:
  - busybox (with wget)
  - node
  - npm
  - npx
  evidence: survey 2026-10-05 (runtimes probe)
  date: 2026-10-05
- image: ghcr.io/blaktron/agentry-python-slim:3.12-slim-trixie
  user: root
  home: /root
  observed: A server starts as the image's own user. HOME and /tmp are writable; writes there are discarded when the run ends. Debian trixie's glibc 2.41, with no wget, curl or git.
  programs:
  - bash and sh
  - python3
  - pip
  evidence: runtimes probe 2026-10-16
  date: 2026-10-16
# Vendors' own remote MCP servers:
# declared by url with an auth, reached through the runner image's bridge
# behind one relay to the address's host. seen is true only for a server
# that answered a tool call through Agentry; the others are what the
# vendor's metadata said, read anonymously on the date given. client says
# who an OAuth sign-in's client is: agentry (the vendor lets Agentry
# register itself) or own (the person brings their own OAuth client).
remote:
- vendor: Linear
  url: https://mcp.linear.app/mcp
  auth: oauth
  scopes: [read, write]
  client: agentry
  seen: true
  observed: A consent and two hosted runs listed the person's issues; the vendor registers Agentry's client itself (dynamic registration and a client metadata document).
  evidence: a consent and two hosted runs, 2026-10-07
  date: 2026-10-07
- vendor: GitHub
  url: https://api.githubcopilot.com/mcp/readonly
  auth: secret
  seen: true
  observed: A local run reached GitHub's read-only tools with a GitHub token sent as the bearer header.
  conditions:
    - "One key: a GitHub token, declared as the server's one secret."
  evidence: a local run, 2026-10-05
  date: 2026-10-05
- vendor: GitHub
  url: https://api.githubcopilot.com/mcp/readonly
  auth: oauth
  scopes: [repo, read:org, read:user, user:email, read:packages, write:packages, read:project, project, gist, notifications]
  client: own
  seen: false
  observed: The read-only tools, signed in to by OAuth. Its metadata names github.com/login/oauth, which offers neither dynamic registration nor a client metadata document, so the person brings their own OAuth App. GitHub has no read-only scope for private repositories, so a task that reads them asks for repo.
  evidence: vendor metadata read 2026-10-09
  date: 2026-10-09
- vendor: GitHub
  url: https://api.githubcopilot.com/mcp/
  auth: oauth
  scopes: [repo, read:org, read:user, user:email, read:packages, write:packages, read:project, project, gist, notifications]
  client: own
  seen: false
  observed: Its metadata names github.com/login/oauth, which offers neither dynamic registration nor a client metadata document, so the person brings their own OAuth App. The read-only tools are at the address ending /readonly.
  evidence: vendor metadata read 2026-10-09
  date: 2026-10-09
- vendor: Notion
  url: https://mcp.notion.com/mcp
  auth: oauth
  scopes: [default]
  client: agentry
  seen: false
  observed: Its metadata offers dynamic registration and a client metadata document, and one scope, default.
  evidence: vendor metadata read 2026-10-09
  date: 2026-10-09
- vendor: Sentry
  url: https://mcp.sentry.dev/mcp
  auth: oauth
  scopes: [org:read, project:write, team:write, event:write, alerts:write]
  client: agentry
  seen: false
  observed: Its metadata offers dynamic registration and a client metadata document.
  evidence: vendor metadata read 2026-10-09
  date: 2026-10-09
- vendor: Asana
  url: https://mcp.asana.com/v2/mcp
  auth: oauth
  scopes: [default]
  client: own
  seen: false
  observed: Its metadata names app.asana.com, which offers neither dynamic registration nor a client metadata document, so the person brings their own Asana app of the type MCP app. The older address ending /sse is past its shutdown date.
  evidence: vendor metadata read 2026-10-09
  date: 2026-10-09
- vendor: Google
  url: https://gmailmcp.googleapis.com/mcp/v1
  auth: oauth
  scopes: [https://www.googleapis.com/auth/gmail.readonly]
  client: own
  seen: false
  observed: Google's Gmail server is in its Workspace Developer Preview, which an account must join, and has no tool that sends mail. Google offers neither dynamic registration nor a client metadata document, so the person brings their own Google OAuth client. For Gmail without the preview, the listed sign-in of the PyPI package workspace-mcp is the alternative.
  evidence: vendor metadata read 2026-10-09
  date: 2026-10-09
# Package servers' OAuth sign-ins seen working. A draft
# gives a package an oauth block only by copying one of these exactly, with
# the egress and env it lists: a token file the package does not read fails
# silently at run time, so a block nobody saw work is not written.
signins:
- ecosystem: pypi
  package: workspace-mcp
  versions: 2.0.1
  egress: [gmail.googleapis.com]
  env:
    MCP_SINGLE_USER_MODE: "1"
    WORKSPACE_MCP_TOOLS: gmail
    WORKSPACE_MCP_READ_ONLY: "true"
    USER_GOOGLE_EMAIL: me@agentry.invalid
  oauth:
    issuer: https://accounts.google.com
    scopes: [https://www.googleapis.com/auth/gmail.readonly]
    files:
      - path: me@agentry.invalid.json
        template: '{"token": "{access_token}", "expiry": "{expiry}", "scopes": ["https://www.googleapis.com/auth/gmail.readonly"], "token_uri": "https://oauth2.googleapis.com/token", "client_id": "agentry", "client_secret": "agentry"}'
    env:
      WORKSPACE_MCP_CREDENTIALS_DIR: "{dir}"
  client: own
  observed: Read the person's Gmail inbox on a run, and again 65 minutes later after the runner renewed the token mid-run. The file is named for USER_GOOGLE_EMAIL, and client_id and client_secret are fixed dummies, never a real client's.
  evidence: a local run, and its renewal 65 minutes later, 2026-10-06
  date: 2026-10-06

Agentry uses only strictly necessary cookies — they sign you in and keep the site secure. Nothing here tracks you, and there are no advertising or analytics cookies. Privacy policy