npm.io
0.4.1 • Published 10h agoCLI

@aigentyc/mcp

Licence
MIT
Version
0.4.1
Deps
2
Size
502 kB
Vulns
0
Weekly
28

@aigentyc/mcp

Model Context Protocol server for aiGentyc — lets Claude Code, Cursor, Windsurf, and any other MCP-compatible agent drive the content/authoring side of your aiGentyc project (documents, crawling, data stores, custom tools, config, backups, …) without clicking through the dashboard.

Chat/search embedding is not part of this package — use the separate aigentyc-chat-sdk (React) for user-facing chat.

Install

npx @aigentyc/mcp login \
  --api-key tyco_pk_XXXX \
  --project-id proj_XXXX

login verifies the key against /api/auth/api-keys/verify and writes ~/.aigentyc/config.json with 0600 perms.

Dev-only flag: pass --allow-insecure to permit plaintext HTTP against non-loopback hosts (e.g. a staging box without TLS). Never use this against production — all real traffic must be HTTPS.

Then wire it into your agent:

Claude Desktop / Claude Code

~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "aigentyc": {
      "command": "npx",
      "args": ["-y", "@aigentyc/mcp"]
    }
  }
}
Cursor

Settings → MCP → add server:

{
  "aigentyc": {
    "command": "npx",
    "args": ["-y", "@aigentyc/mcp"]
  }
}

Commands

aigentyc-mcp serve      Run the stdio MCP server (default when invoked with no args)
aigentyc-mcp login      Save + verify an API key profile
aigentyc-mcp logout     Remove a profile
aigentyc-mcp doctor     Verify config + dashboard reachability

Tools (86 total, 20 domains)

End-to-end coverage. Highlights:

  • aigentyc_get_started — call this first. Returns project status + a prioritised list of next steps the agent should walk the user through.
  • Embed the chatchat_widget_setup (paste snippet for existing app), chat_widget_scaffold (runs npm create aigentyc-chat@latest for a fresh starter), chat_widget_get_snippet (just the code).
  • Add contentfiles_upload, documents_create_from_text, extract_from_urls, link_sources_create, data_stores_*.
  • Configureconfig_update (system prompt, model, …), personas_upsert, tools_create + flows_create (custom tool actions).
  • Operatebackups_*, analytics_*, jobs_status / jobs_wait.

See llms.txt for the full tool inventory and recipes.

Vibe-coder one-shot

You:    "Add my docs/ folder, set the system prompt, and scaffold a Next.js
         chat app at ./my-app."

Claude: aigentyc_get_started        → "kb empty, no system prompt"
        files_upload({ paths: [...] })
        config_update({ patch: { systemPrompt: "..." } })
        chat_widget_scaffold({ destination: "./my-app", template: "next",
                               confirm: true })
        → ✓ done. cd my-app && npm install && npm run dev

Security

  • API keys are project-scoped; a key for project A cannot read/write B.
  • ~/.aigentyc/config.json is written 0600. The server refuses to start with wider perms.
  • The HTTP client refuses plaintext HTTP to non-loopback hosts.
  • Destructive operations (e.g. documents_delete) require confirm: true.
  • Per-API-key rate limits: 300 reads/min, 60 writes/min (429 over limit).
  • Every API-key-authed request is logged server-side (api_key_audit_log table) with keyId, projectId, route, method, status, and X-Request-Id for tracing.
  • files_upload refuses paths that escape $CWD or $HOME, rejects non-regular files, and caps batches at 50MB/file, 500MB total.
  • extract_from_urls prefilters RFC1918 / loopback / cloud-metadata URLs.

Publishing

cd mcp-server
npm run build
npm run smoke           # stdio JSON-RPC smoke test
npm pack --dry-run      # inspect what would ship
npm publish --access public

Deferred features

Tracked for v0.2+:

  • backups_download_all (ZIP) secret redaction for API-key callers. Current implementation redacts JSON downloads but not the archived ZIP. Session callers are unaffected. Recommendation: use session for now.
  • /api/extract/* dual-auth + binary-file uploads (PDF/DOC/DOCX). The extract proxy currently has no auth guard — not exposed to MCP. files_upload is therefore restricted to UTF-8 text formats only.
  • Analytics sessions/comments write paths — MCP is read-only by design.
  • Custom rate-limit overrides per-key — one limit for all keys today.

Keywords