Skip to main content
Glama

Ayoa MCP Server

Standalone Node.js MCP server exposing Ayoa mindmapping services as tools.

Repository: https://github.com/viniciusfs76/ayoa-mcp-server

DevOps pipeline

GitHub Actions is configured in .github/workflows/ci.yml.

On every push or pull request to main, it runs:

  1. Node.js 22 and 24 test matrix;

  2. npm ci reproducible installation;

  3. Node.js tests;

  4. JavaScript syntax checks;

  5. MCP Inspector tools/list contract verification;

  6. high-severity production dependency audit;

  7. package integrity check after tests pass.

The pipeline does not invoke Ayoa operations and does not require cookies. This avoids creating maps or artifacts in a real account.

Run the same checks locally:

npm ci
npm test
npm run verify:mcp
node --check server.js
node --check tools.js
node --check ayoa-client.js
npm audit --omit=dev --audit-level=high

Related MCP server: Gamma MCP Server

Tools

  • create_mindmap

  • list_mindmaps

  • get_mindmap

  • import_opml

  • list_presenter_slides

  • prepare_presenter

  • capture_slides

  • make_video

Installation

npm install

Termux prerequisites:

command -v node
command -v ffmpeg
ls "$PREFIX/lib/chromium/headless_shell"

The server uses Node.js ESM, @modelcontextprotocol/sdk, zod, and puppeteer-core.

Authentication

Ayoa operations use a local EditThisCookie JSON file. Never put cookie contents in MCP arguments, GitHub, or chat.

export AYOA_COOKIES_FILE="$HOME/.cookiesAyoa-domain.json"
chmod 600 "$AYOA_COOKIES_FILE"

The browser login sequence is:

www.ayoa.com → inject cookies → app.ayoa.com → operation

If the session redirects to auth.ayoa.com/login, the tool returns a clear authentication error.

Run locally

node server.js

Example MCP client configuration:

{
  "mcpServers": {
    "ayoa": {
      "command": "node",
      "args": ["/absolute/path/to/ayoa-mcp-server/server.js"],
      "env": {
        "AYOA_COOKIES_FILE": "/absolute/path/to/ayoa-cookies.json"
      }
    }
  }
}

Inspector

Interactive Inspector:

npm run inspector

Headless tools-list verification:

npx @modelcontextprotocol/inspector --cli node server.js --method tools/list

Or:

npm run verify:mcp

Ayoa operation contracts

create_mindmap uses the authenticated Ayoa UI at /mindmaps/new.

list_mindmaps reads mind-map links from the authenticated dashboard. No undocumented REST list endpoint is invented.

import_opml uses the known Ayoa v2 sequence:

POST /v2/uploads
upload to presigned URL
POST /v2/import/text
poll GET /v2/import-jobs
paperIds[0] → mindmapId

list_presenter_slides, prepare_presenter, and capture_slides use the Presenter DOM and wait for the selected slide to settle before capturing.

make_video encodes slide-*.png files to H.264 MP4 with FFmpeg.

Design boundaries

  • Standalone Node project;

  • no dependency on NotebookLM MCP;

  • no NotebookLM tools or nlm_* names;

  • no destructive delete tool exposed;

  • CI uses no Ayoa credentials;

  • real account operations remain opt-in through MCP tool calls.

Related MCP Connectors

Related MCP Servers