AgentValet/AgentValet

AgentValet/AgentValet

от agentvalet
AgentValet - это брокер идентичности и полномочий для AI-агентов и MCP-серверов. Он выдаёт каждому агенту свой криптографический ключ, краткосрочные JWT-токены и требует человеческого одобрения для...

AgentValet

MCP server IETF AIMS aligned SPIFFE identity RFC 7591 AuthZEN 1.0 MIT license

AgentValet

Identity and credential governance broker for AI agents and MCP servers. It gives every agent its own cryptographic identity, scoped and short-lived credentials per platform, human approval gates on the actions that matter, and an immutable audit log of everything it did.

Open core. This repo holds the open-source MIT-licensed client surface: the MCP server, the CLI, the Claude Desktop bundle, and the runtime adapters. The managed proxy runs the credential vault, the policy engine, and the audit store. A self-host reference for the proxy is on the roadmap.

Live at agentvalet.ai. Docs at docs.agentvalet.ai.

Quickstart

npx @agentvalet/register

That generates an RS256 keypair for your agent, registers it, and wires up the config. The private key never leaves your machine. From then on your agent signs a short-lived JWT per request and calls platforms through the AgentValet proxy. Approve the agent in the dashboard, grant it scopes, and you are running.

Use as an MCP server

npx @agentvalet/register writes this block into your client's MCP config for you. To wire it up by hand — in Claude Desktop, Claude Code, Cursor, or any MCP-compatible client — add:

Инструменты были проиндексированы:
agent_register

agent_register: Самостоятельно регистрирует этого агента с владельцем. Аутентификация не требуется. Входные данные: owner_id (string), agent_name (string), requested_scopes (массив {platformId, scopes}). Возвращает: registration_token, poll_url, client_id, scope, expires_in. Аутентификация: не требуется.

Параметры
  • agent_namestringобязательный

    Human-readable name for this agent

  • owner_idstringобязательный

    The owner ID to register this agent under

  • requested_scopesobject[]обязательный

    Array of platform scope requests

agent_status

agent_status: Опрашивает статус регистрации, используя токен из agent_register. Входные данные: token (строка, обязательный). Возвращает: status ("pending_approval"|"approved"|"rejected"), agent_id (если одобрено), mcp_config (если одобрено). Аутентификация: не требуется.

Параметры
  • tokenstringобязательный

    Registration token returned by agent_register

authzen_evaluate

authzen_evaluate: Оценивает, есть ли у этого агента доступ к определённому разрешению (scope) платформы. Вызывайте этот инструмент ПЕРЕД use_platform, если хотите выполнить предварительную проверку без обращения к вышестоящему серверу. Входные данные: platform_id (строка), scope (строка). Возвращает: decision (булево), reason ("approved"|"denied"|"revoked"|"scope_not_granted"). Аутентификация: Bearer agent JWT (отправляется автоматически этим MCP-сервером).

Параметры
  • platform_idstringобязательный

    The platform identifier (e.g. airtable, github)

  • scopestringобязательный

    The permission scope to evaluate (e.g. records:read)

delete_platform

delete_platform: Удаляет данные на платформе, которую владелец подключил, через прокси AgentValet. Вызывает собственный публичный REST API платформы (например, GitHub REST API, Slack Web API, Stripe API); endpoint - это путь в этом API, точно как его определяет документация. Для платформы, чей callStyle равен 'graphql', передавайте "/" в качестве endpoint и помещайте операцию в body в виде {query, variables}: путь и HTTP-метод не имеют значения на этой платформе. Всегда отправляет DELETE. Это удаляет данные, и AgentValet не может обратить это действие. Может блокировать до 50 секунд в ожидании одобрения владельца. Входные данные: platform, endpoint, scope, body (необязательно), connection_id (необязательно), reason (необязательно). Аутентификация: Bearer JWT.

Параметры
  • bodyobject

    Optional JSON request body, forwarded verbatim.

  • connection_idstring

    Optional. Target a specific connection when a platform has more than one connected. Omit to use the default.

  • endpointstringобязательный

    Path in the platform's own API (e.g. /repos/owner/name)

  • platformstringобязательный

    Platform ID (e.g. github, slack, stripe)

  • reasonstring

    Optional but strongly encouraged. One sentence on WHY you are deleting this. Shown to the human approver if the call is gated. Max 500 characters; plain text.

  • scopestringобязательный

    Permission scope required for this delete (e.g. repo:delete)

issue_child_agent

Выдаёт кратковременную учётную запись дочернего агента для сабагента, которого вы собираетесь породить. Дочерний агент получает собственный идентификатор агента, собственный урезанный набор разрешений (области дочернего агента должны быть подмножеством ваших) и собственный журнал аудита; его можно отозвать отдельно, не затрагивая вас или его собратьев. Возвращает bearer-токен, который сабагент должен отправлять в заголовке Authorization. TTL 60-3600 секунд (по умолчанию 900). Внедряйте в контекст сабагента ТОЛЬКО bearer_token, никогда не передавайте собственные учётные данные.

Параметры
  • grantsobject[]обязательный

    Array of platform grants to attenuate onto the child. Each scope must be a subset of your own granted scopes.

  • namestring

    Optional human-readable name for the child agent (1-200 chars).

  • ttl_secondsnumber

    Optional lifetime in seconds for the child's bearer token. 60-3600, default 900.

list_my_pending_actions

list_my_pending_actions: Возвращает текущие ожидающие запросы на одобрение этого агента, а также любые завершённые за последние 24 часа. Используйте это при запуске сессии, когда пользователь упоминает предыдущее действие, или когда long-poll в use_platform завершился по таймауту и пользователь возвращается с вопросом о том, что произошло. Входные данные: отсутствуют. Возвращает: { pending: [{approval_id, platform_id, scope, created_at, expires_at}], recently_completed: [{approval_id, platform_id, scope, status, executed_at, result_summary, execution_error}] }. Аутентификация: Bearer JWT агента (отправляется автоматически).

Параметры

Без параметров.

list_platforms

list_platforms: Перечисляет платформы и разрешения (scopes), к которым имеет доступ этот агент. Входные данные: нет. Возвращает: { platforms: [{ platformId, platformName, scopes, requireApproval, approvalScopes?, connections?, callStyle? }], version: "<hex>" }. Платформа включает connections, только если у нее есть 2+ доступных аккаунта; передавайте выбранный connection_id в use_platform (опустите его для значения по умолчанию). Стиль вызова: callStyle присутствует только в значении "graphql" и указывает, как ОБРАЩАТЬСЯ к платформе, а не то, какие операции там доступны: у этой платформы ОДИН endpoint, принимающий {query, variables} через POST, поэтому передайте "/" в качестве endpoint, а операцию поместите в тело. Его путь и HTTP-метод не имеют значения, read_platform вообще нельзя использовать на этой платформе, а GET-запрос возвращает ошибку вышестоящего сервиса, в которой не указаны ни платформа, ни причина. Если поле отсутствует, это обычный REST API. Одобрение: вызов требует одобрения человека, если requireApproval платформы равно true (на уровне гранта: при каждом вызове появляется запрос), если requireApproval выбранного подключения равно true, или если scope указан в approvalScopes (на уровне политики: запрос появляется только для этих scope). approvalScopes не указывается, если ни один scope не ограничен политикой. Версия: детерминированный хеш от действующей спецификации: он меняется при изменении набора платформ, scope, требований к одобрению (на уровне гранта или политики) или подключений. Сравните его с Current permissions version, указанной в этом описании: если они отличаются, ваш кешированный результат устарел, и вам нужно снова вызвать list_platforms, прежде чем доверять ему. Аутентификация: Bearer JWT.

Параметры

Без параметров.

read_platform

read_platform: Читает данные с платформы, которую подключил владелец, через прокси AgentValet. Вызывает собственный публичный REST API платформы (например, GitHub REST API, Slack Web API, Stripe API); endpoint содержит путь в этом API, в точности как указано в его документации. Платформу, которую list_platforms указывает с callStyle 'graphql', этим инструментом прочитать вообще нельзя: она предоставляет ЕДИНЫЙ endpoint, который принимает только POST {query, variables}, поэтому отправляйте запрос на чтение через write_platform (или use_platform с методом POST), даже если это чтение. Запрос GET туда возвращает ошибку вышестоящего сервиса, которая не называет ни платформу, ни причину; это не вина брокера. Всегда выполняет GET: используйте write_platform для создания или обновления, а delete_platform для удаления. Входные данные: platform, endpoint, scope, connection_id (необязательно), reason (необязательно). Возвращает: тело ответа вышестоящего API. Аутентификация: Bearer JWT.

Параметры
  • connection_idstring

    Optional. Target a specific connection when a platform has more than one connected. Omit to use the default.

  • endpointstringобязательный

    Path in the platform's own API (e.g. /user/repos)

  • platformstringобязательный

    Platform ID (e.g. github, slack, stripe)

  • reasonstring

    Optional but strongly encouraged. One sentence on WHY you are making this call. Shown to the human approver if the call is gated. Max 500 characters; plain text.

  • scopestringобязательный

    Permission scope required for this read (e.g. repo:read)

report_self_diagnostic

report_self_diagnostic: Отправляет самоотчёт (ошибка/предупреждение/информация) владельцу AgentValet. Используйте после того, как ошибка use_platform вернёт report_hint, ИЛИ заблаговременно, когда вы сталкиваетесь с проблемой, о которой пользователь должен знать. Входные параметры: severity (debug|info|warn|error|critical), message (строка, обязательный, макс. 4096 байт), code (строка, необязательный, макс. 128 символов), platform (строка, необязательный), endpoint (строка, необязательный), correlation_id (uuid строка, необязательный — скопируйте из report_hint от неудачного вызова, чтобы привязать этот отчёт к строке аудита на стороне брокера), context (объект, необязательный, JSON-сериализованный должен быть < 16 КиБ). Возвращает: { id, received_at } в случае успеха. Аутентификация: Bearer agent JWT (отправляется автоматически).

Параметры
  • codestring

    Optional short machine code (e.g. 'permission_denied').

  • contextobject

    Optional structured context (request params, error details). Avoid secrets.

  • correlation_idstring

    Optional UUID — copy from a use_platform error's report_hint to stitch this report to the audit row.

  • endpointstring

    Optional endpoint that failed.

  • messagestringобязательный

    One-sentence agent narrative describing what happened.

  • platformstring

    Optional platform id this report relates to.

  • severityenumобязательный

    Severity level. error/critical trigger an owner notification.

request_platform_access

request_platform_access: Запрашивает у администратора организации доступ для этого агента к платформе, от которой он сейчас заблокирован. Вызывайте этот инструмент, когда use_platform возвращает ошибку доступа. Входные параметры: platform (строка, обязательный), scope (строка, опциональный: необходимый объём доступа), reason (строка, опциональный: причина запроса). Вызов ожидает решения администратора до ~50 секунд. Возвращает: { status: "approved"|"pending"|"denied", message }. При статусе "approved" повторите исходный вызов use_platform. При статусе "pending" запрос поставлен в очередь; повторите позже. Аутентификация: Bearer agent JWT (отправляется автоматически).

Параметры
  • platformstringобязательный

    Platform ID (e.g. github, slack)

  • reasonstring

    Optional short reason for the request

  • scopestring

    Optional specific scope needed (e.g. repo:read)

use_platform

use_platform: Вызывает внешний API платформы (Airtable, GitHub, Slack, Metabase и т.д.) через прокси AgentValet. Входные данные: platform (string), endpoint (string), method (GET|POST|PUT|PATCH|DELETE), scope (string), body (object, необязательно — тело JSON-запроса для POST/PUT/PATCH/DELETE). Возвращает: тело ответа вышестоящего API. Может занимать до 50 секунд, если для действия требуется одобрение владельца: вызов блокируется в ожидании, затем прозрачно возвращает одобренный результат. Если одобрение не приходит вовремя, возвращает обёртку pending_approval, а действие выполняется асинхронно; пользователь получает уведомление о завершении. Аутентификация: Bearer JWT. Примечание: старые клиенты, передающие data вместо body, всё ещё принимаются для обратной совместимости, но body — каноническое имя.

Параметры
  • bodyobject

    JSON request body for POST/PUT/PATCH/DELETE. Optional. Forwarded verbatim to the upstream API.

  • connection_idstring

    Optional. Target a specific connection when a platform has more than one connected (e.g. two GitHub orgs). Value is the connection id shown in the dashboard. Omit to use the default connection.

  • dataobject

    Deprecated alias for body — prefer body. Kept for backwards compatibility.

  • endpointstringобязательный

    API path on the target platform (e.g. /v0/meta/bases or /api/dataset)

  • methodenumобязательный

    HTTP method to use

  • platformstringобязательный

    Platform ID (e.g. airtable, github, slack, metabase)

  • reasonstring

    Optional but strongly encouraged. One sentence on WHY you are making this call. If the action requires owner approval, this is shown to the human who decides — without it their approval is a blind yes/no. Max 500 characters (longer is truncated). Plain text; markup is not rendered.

  • scopestringобязательный

    Permission scope required for this action (e.g. records:read)

write_platform

write_platform: Создаёт или обновляет данные на платформе, которую подключил владелец, через прокси AgentValet. Вызывает собственный публичный REST API платформы (например, GitHub REST API, Slack Web API, Stripe API); endpoint - это путь в этом API, точно такой, как он определён в документации. Для платформы с callStyle 'graphql' передайте "/" в качестве endpoint, а операцию поместите в body как {query, variables}: путь и HTTP-метод на такой платформе не имеют значения. Принимает только POST, PUT или PATCH: для GET используйте read_platform, а для DELETE - delete_platform. Может блокироваться до 50 секунд в ожидании одобрения владельца, затем возвращает одобренный результат; в противном случае возвращает обёртку pending_approval. Входные данные: platform, endpoint, scope, method (необязательно, по умолчанию POST), body (необязательно), connection_id (необязательно), reason (необязательно). Аутентификация: Bearer JWT.

Параметры
  • bodyobject

    JSON request body, forwarded verbatim to the upstream API.

  • connection_idstring

    Optional. Target a specific connection when a platform has more than one connected. Omit to use the default.

  • endpointstringобязательный

    Path in the platform's own API (e.g. /api/chat.postMessage)

  • methodenum

    POST to create, PUT to replace, PATCH to modify. Defaults to POST.

  • platformstringобязательный

    Platform ID (e.g. github, slack, stripe)

  • reasonstring

    Optional but strongly encouraged. One sentence on WHY you are making this call. Shown to the human approver if the call is gated. Max 500 characters; plain text.

  • scopestringобязательный

    Permission scope required for this write (e.g. chat:write)

Похожие MCP-сервера

Kzino/vorim-mcp-server

Kzino/vorim-mcp-server

MCP-сервер Vorim AI даёт каждому AI-агенту криптографическую идентичность (Ed25519), гибкие разрешения с временными ограничениями и защищённый аудит. Работает с Claude Desktop, Cursor и любыми MCP-...

JavaScript73
vassiliylakhonin/agenda-intelligence-md

vassiliylakhonin/agenda-intelligence-md

Agenda Intelligence MD — слой доверия для стратегических агентов. Анализирует доказательства и выдаёт структурированное решение: разрешить, усилить контроль или передать человеку. Полезен для скори...

Python6
ark-forge/arkforge-mcp

ark-forge/arkforge-mcp

ArkForge - MCP-сервер, сторонний прокси, подписывающий HTTP-запросы Ed25519 и фиксирующий их в неизменяемом реестре. Независимое криптографическое доказательство для аудита AI-агентов, вебхуков и м...

Python2
Patent-PreCheck/patent-precheck-mcp

Patent-PreCheck/patent-precheck-mcp

MCP-сервер для предварительной проверки патентоспособности изобретения. Оценивает по критериям USPTO, выдаёт баллы готовности к подаче и рекомендации. Не требует API-ключей, полезен разработчикам и...

JavaScript1
webaesbyamin/agent-receipts

webaesbyamin/agent-receipts

MCP сервер даёт AI-агентам память с криптографическими чеками. Каждый факт подписывается Ed25519, хранится локально без облака. Для разработчиков, нуждающихся в аудите действий агента.

TypeScript1
gotohuman/gotohuman-mcp-server

gotohuman/gotohuman-mcp-server

MCP сервер gotoHuman добавляет человеческий контроль в AI-агенты. Запрашивайте одобрение задач, управляйте workflow с customizable UI. Интегрируется в Cursor, Claude, Windsurf для безопасных автоматизаций.

JavaScript52
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин