ainote Vaults API
The vaults API from ainote — 5 operation(s) for vaults.
The vaults API from ainote — 5 operation(s) for vaults.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ainote-dev:ainote-dev-vaults-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: ainote MCP — OpenAPI mirror Vaults API
version: 1.3.0
description: OpenAPI 3.1 surface auto-generated from ainote's MCP tool registry. Use this with OpenAI Custom GPT Actions, LangChain remote tools, AutoGen, or any HTTP-first agent runtime that consumes OpenAPI. The native MCP (JSON-RPC) endpoint at POST /api/mcp remains the recommended path for Claude/Cursor/Windsurf. Tool semantics (annotations, idempotency, destructiveness) are identical across both surfaces — see x-mcp-annotations.
contact:
name: ainote
url: https://docs.ainote.dev
license:
name: MIT
servers:
- url: https://api.ainote.dev
security:
- McpKeyAuth: []
tags:
- name: Vaults
paths:
/api/mcp/tools/vault_list:
post:
operationId: tool_vault_list
summary: List the authenticated user's GitHub-backed vaults.
description: List the authenticated user's GitHub-backed vaults. Each entry includes slug, github_repo_full_name, sync status, indexed file count, and is_primary flag. Read-only. Pair with vault_clone to get the git clone URL or vault_sync to read/write vault files.
tags:
- Vaults
x-mcp-annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: false
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
include_commit_sha:
type: boolean
description: Include each vault's latest_commit_sha (default false). Costs one GitHub API round-trip per vault, so only ask for it when you actually need the remote HEAD.
responses:
'200':
description: Tool executed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ToolSuccessResponse'
'400':
description: Invalid arguments or business-rule violation
content:
application/json:
schema:
$ref: '#/components/schemas/ToolErrorResponse'
'401':
description: Missing or invalid McpKey
/api/mcp/tools/vault_create:
post:
operationId: tool_vault_create
summary: Create a new private vault as a GitHub repository under the user's account.
description: Create a new private vault as a GitHub repository under the user's account. Requires the user to have completed the GitHub App install flow first.
tags:
- Vaults
x-mcp-annotations:
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Vault display name. The GitHub repo name (slug) is derived from it unless `slug` is given.
slug:
type: string
description: Optional explicit repo slug (ASCII lowercase-hyphen). Required when `name` has no ASCII letters or digits — e.g. a Korean-only name — because GitHub repo names are ASCII-only.
description:
type: string
description: Optional GitHub repo description.
required:
- name
responses:
'200':
description: Tool executed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ToolSuccessResponse'
'400':
description: Invalid arguments or business-rule violation
content:
application/json:
schema:
$ref: '#/components/schemas/ToolErrorResponse'
'401':
description: Missing or invalid McpKey
/api/mcp/tools/vault_clone:
post:
operationId: tool_vault_clone
summary: Return the GitHub HTTPS clone URL for an existing vault.
description: Return the GitHub HTTPS clone URL for an existing vault. Authentication is via the user's normal GitHub credentials (PAT or gh CLI).
tags:
- Vaults
x-mcp-annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Vault name or slug.
target_path:
type: string
description: Preferred local clone path for the returned instructions.
required:
- name
responses:
'200':
description: Tool executed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ToolSuccessResponse'
'400':
description: Invalid arguments or business-rule violation
content:
application/json:
schema:
$ref: '#/components/schemas/ToolErrorResponse'
'401':
description: Missing or invalid McpKey
/api/mcp/tools/vault_connect_status:
post:
operationId: tool_vault_connect_status
summary: Check whether the user has installed the ainote GitHub App.
description: Check whether the user has installed the ainote GitHub App. If connected, returns account_login + installation_id. If not, returns an install_url to surface to the user. Read-only; talks to GitHub API.
tags:
- Vaults
x-mcp-annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties: {}
responses:
'200':
description: Tool executed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ToolSuccessResponse'
'400':
description: Invalid arguments or business-rule violation
content:
application/json:
schema:
$ref: '#/components/schemas/ToolErrorResponse'
'401':
description: Missing or invalid McpKey
/api/mcp/tools/vault_sync:
post:
operationId: tool_vault_sync
summary: Wrapper around vault file sync.
description: 'Wrapper around vault file sync. action=list|pull|push to work against the primary vault. list/pull are paginated — narrow with `path`/`since` and follow `next_cursor` instead of pulling the whole vault. To fetch specific files, pull with `paths` (up to 100 exact paths, one call). For push: WAF-bypass via `content_b64` or `content: ''__B64__:...''` prefix (mirrors sync_push).'
tags:
- Vaults
x-mcp-annotations:
readOnlyHint: false
destructiveHint: true
idempotentHint: false
openWorldHint: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
action:
type: string
enum:
- list
- pull
- push
description: Sync action. Default list.
path:
type: string
description: 'push: target file path. list/pull: a directory (everything under it, e.g. ''global'') or an exact file path (e.g. ''global/MEMORY.md''); a trailing slash is ignored.'
paths:
type: array
items:
type: string
description: 'pull only: up to 100 exact file paths fetched in ONE call. The response lists absent paths in `missing`. Cannot be combined with path/since/cursor.'
content:
type: string
description: Required for push (or `content_b64`). Prefix with '__B64__:' for WAF bypass.
content_b64:
type: string
description: 'Optional: base64-encoded content (use INSTEAD of `content`) for WAF-bypass on large bodies. Server decodes before storing.'
since:
type: string
description: ISO 8601 timestamp for incremental list/pull (files updated strictly after it). Deletions are not reported — compare a full list against your local copy to find them.
limit:
type: integer
description: 'Max entries per page. list: default 200, max 1000. pull: default 25, max 100.'
cursor:
type: string
description: Pass `next_cursor` from the previous response to fetch the next page.
responses:
'200':
description: Tool executed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ToolSuccessResponse'
'400':
description: Invalid arguments or business-rule violation
content:
application/json:
schema:
$ref: '#/components/schemas/ToolErrorResponse'
'401':
description: Missing or invalid McpKey
components:
schemas:
ToolSuccessResponse:
type: object
description: 'Successful tool invocation. `content` mirrors the MCP `tools/call` result shape: an array of content blocks (text and optionally a structured resource payload).'
properties:
content:
type: array
items:
type: object
properties:
type:
type: string
enum:
- text
- resource
text:
type: string
ToolErrorResponse:
type: object
description: Uniform error shape emitted by ainote MCP tool handlers.
properties:
error:
type: object
properties:
code:
type: integer
description: JSON-RPC error code (-32xxx range)
message:
type: string
required:
- code
- message
securitySchemes:
McpKeyAuth:
type: apiKey
in: header
name: Authorization
description: Send `McpKey <YOUR_MCP_KEY>`. Issue an MCP key at /settings/mcp or via `npx @ainote/mcp signup`.
x-ainote-meta:
generator: Api::Mcp::OpenapiController
generated_at: '2026-11-01T14:35:55Z'
tools_count: 56
native_mcp_endpoint: https://api.ainote.dev/api/mcp
agent_compatibility_doc: https://github.com/ainote-dev/ainote-mcp#agent-compatibility