
AiNecto
com.ainectoPublished by ainecto.comOfficial publisherv0.13.1Updated Nov 7, 2026
Shared project memory for people and AI agents: documents, ERD, diagrams, boards, design mockups.
Overview
AiNecto gives AI assistants shared project memory — documents, ERDs, diagrams, boards and mockups — through a hosted MCP endpoint or a local bridge.
- What you can do
- List and work with projects and their documents, ERDs, diagrams, boards and design mockups
- Apply ERD changes and create or update documents through the server's tools
- Upload attachment files to documents and list existing attachments
- Read notifications, agent to-dos and history, and update to-dos
- Run the same tools from the command line when a session cannot see them
- When to use it
- When a team keeps project knowledge in AiNecto and wants coding agents in Claude Code, Cursor or Codex to read and update that shared context. Useful for keeping ERDs, diagrams and design documents in sync with the work an agent does in a repository.
- Requirements
- A remote endpoint at ainecto.com/mcp with OAuth sign-in, or the npm package run through npx as a local stdio bridge. Node.js for the CLI and bridge; macOS or glibc Linux for terminal sessions. A browser for the one-time sign-in, and an AiNecto account with workspace permissions.
Installation
In SourceWeft
- Open AiNecto in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/com.ainecto%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"ainecto": {
"type": "http",
"url": "https://ainecto.com/mcp"
}
}
}README
ainecto — AiNecto CLI and MCP connector
Published as ainecto, @ainecto/mcp and @ainecto/cli — the same code. Command: ainecto.
Once per machine: npx -y ainecto@latest setup — signs you in through the browser (once), checks the
connection, and connects Claude Code, Cursor, and Codex to the AiNecto server address
(https://ainecto.com/mcp). Each agent then signs in to AiNecto by itself the first time it connects.
Every AI session sees the same AiNecto tools. What a tool may change is decided by your AiNecto permissions on the workspace, project, or document it touches — the server refuses the rest. There are no session roles (Design / Development / Test / Validation were removed in 0.8.0).
For AI agents
Run npx -y ainecto@latest setup (use a long command timeout — at least 6 minutes: sign-in waits up
to 5 minutes for the user). Then run npx -y ainecto@latest doctor and do what it says.
setupregisters the server address, so each agent signs in on its own the first time: Claude Code — run/mcpin a session and sign in toainecto; Cursor — sign in whenainectoasks in its MCP settings; Codex — signs in whilesetupconnects it (a browser tab opens and the sign-in link is printed to stderr; if it did not finish, runcodex mcp login ainecto).- To add AiNecto's working rules to a repository, run
npx -y ainecto@latest initfrom its root. It does not ask for a role or a project. - A server added during a session is not available in that session. Keep working through the CLI:
npx -y ainecto@latest tools listandnpx -y ainecto@latest tools call <tool> '<json>'. A new session loads the MCP tools. - If a result names a tool that is not in your tool list, the session started before that tool was added — start a new session or call it through the CLI as above.
- Claude Code's auto mode may block running an external package with
npx. If it does, ask the user to allow the command. - ChatGPT, Claude and other apps: see https://ainecto.com/docs/get-started/connect-your-agent/
Set up this machine
setup connects each client separately and reports connected, updated, kept (someone else's
ainecto entry, left untouched), not installed, or failed; if any client fails it says «partial» and
exits 1:
- Claude Code —
claude mcp add --transport http -s user ainecto https://ainecto.com/mcp(user scope). Sign in with/mcpin a session. - Cursor — merges
"ainecto": { "url": "https://ainecto.com/mcp" }into~/.cursor/mcp.json, keeping your other servers. Cursor asks you to sign in from its MCP settings. - Codex —
codex mcp add ainecto --url https://ainecto.com/mcp. Codex starts its sign-in right away (a browser tab opens;setuppasses Codex's output, with the sign-in link, through to stderr). If that did not finish within 90 seconds, Codex shows asfailedbut stays connected — runcodex mcp login ainecto(re-runningsetupsays the same).
With --env dev (or --endpoint) the address is that environment's. The server address has no version
to pin: a server update reaches every agent at once. Entries an older setup wrote
(npx -y @ainecto/mcp@<version>, with or without --role) are rewritten to the server address when you
re-run setup; setup --undo removes either kind.
setup --local registers the local relay instead — npx -y @ainecto/mcp@<version> (stdio, pinned to
the CLI version), which uses this machine's one ainecto sign-in for every agent. Use it only when an
agent cannot sign in to the server address by itself; running setup again without --local moves back
to the server address.
Your AiNecto role (your job, set in AiNecto's account settings) is shown by setup and status; AI uses
it to pitch explanations — it does not change permissions.
Set up a repository (optional)
-
--agent <name>names the agent that works in this folder. It writes the name to.ainecto/agent.local(keep it out of git) and puts it in.mcp.json,.cursor/mcp.jsonand.codex/config.toml— the server address entries get the headerX-AiNecto-Agent-Name, the local relay gets--agent <name>. Re-runninginitkeeps the name.ainecto tools call …run in this folder sends the same name. The server checks the name; a name it refuses stopsinitbefore any file is written..codex/config.tomlis written only when it does not exist yet (or init wrote it); Codex reads it only in a trusted project. -
initfetches the rules from the server —--dry-runtoo, so the plan is the real one. If it cannot (not signed in, offline), it says which files would get this package's default text instead. -
If this machine is not signed in yet,
initopens the browser once (--dry-runnever does). The sign-in URL is printed first (with--json, as one JSON line on stderr:{"event":"login_url","url":…}). -
It stops when run from a sub-folder of a git repository, and tells you the root.
-
--mcpwrites the server address, likesetup:.mcp.jsongets"ainecto": { "type": "http", "url": "https://ainecto.com/mcp" }(Claude Code needs thetype) and.cursor/mcp.jsongets"ainecto": { "url": "https://ainecto.com/mcp" }. Each agent signs in by itself the first time.--localwrites the pinned local relay instead (see Connector Mode). -
Repositories set up earlier (
.mcp.jsonwithnpx -y @ainecto/mcp…, with or without--role): re-runnpx -y ainecto@latest init. It rewrites the existingainectoentry to the server address (or, with--local, to the relay pinned to this version without--role), and drops the oldprojectfield from.ainecto/config.json(unless you changed it). Anainectoentry pointing somewhere else is left alone. Until then the old entry keeps working:--roleis accepted and ignored. Old flags (--role,--project,--project-name,--yes) are ignored with a one-line note.
Commands
Prefer npx -y ainecto@latest <command>. To install once instead, use npm install -g ainecto — but
install only one of ainecto, @ainecto/mcp and @ainecto/cli globally: they are the same code
and all ship the ainecto command, so a second global install conflicts. (@ainecto/mcp also carries
mcp, the bridge.)
Tool names are the server's own names (list_projects, erd_apply_changes, …). Your AI client
shows them with its own prefix, for example mcp__ainecto__list_projects in Claude Code; the CLI
does not use that prefix. A tool name that starts with
the server's older mcp__ainecto__ prefix is still accepted.
Every command takes --env dev for https://dev.ainecto.com/mcp. Endpoint resolution priority:
--endpoint <url>AINECTO_MCP_ENDPOINT--env dev- production default,
https://ainecto.com/mcp
Endpoint URLs must use https:. Plain http: is accepted only for localhost loopback targets such
as 127.0.0.1. When AINECTO_TOKEN is set, the CLI only sends it to the default prod/dev endpoints
unless AINECTO_ALLOW_CUSTOM_ENDPOINT_TOKEN=1 is set for an explicitly trusted custom endpoint.
The commands are ainecto and mcp (which npx -y @ainecto/mcp runs). The AINECTO_* environment
variables above are the only names for those settings — do not guess another prefix.
Generated Friendly Commands
Every checked-in generated catalog tool is reachable through its deterministic command path. Scalar schema fields are exposed as flags, with both kebab-case and schema-case accepted:
Array or object payloads use the first-party CLI JSON payload reader:
Destructive generated commands prompt in human mode unless --yes is supplied. In --json mode
they fail with a structured error unless --yes is present.
Attachment file upload is available through a bespoke command that performs the upload-token, raw PUT, and attachment registration flow:
The generated request_upload_token and upload_attachments paths remain raw MCP argument-contract
commands and do not read local files.
Inbox polling — for a scheduler (cron, launchd) that wakes an agent only when something is new. Exit
codes: 0 new items, 3 nothing new, 1 error, 2 usage error. notifications poll saves the batch
to the cursor file before printing it and prints the same batch again until notifications ack (run
it only after the agent handled the batch). agent-todos poll --only-new exits 0 only for to-dos it
has not seen before (kept in the seen file). Both take --workspace <uuid> and --project <uuid>,
each repeatable: any of the given workspaces AND any of the given projects. Each filter is its
own notification stream, so use one cursor file per filter.
The server tools behind them (list_notifications, list_agent_todos, update_agent_todos,
list_history) are generated commands too (ainecto notifications list, ainecto agent-todos list,
ainecto agent-todos update -f …, ainecto history list) once the server exposes them.
Terminal Sessions
ainecto term keeps terminal sessions running after you close the terminal window — no tmux or cmux
needed. A background process, started on demand, owns each session and keeps its screen, so agents and
scripts can type into a session and read its screen, and you can attach from any terminal app. It runs on
this machine only; it does not use your AiNecto sign-in.
- Keys for
key:enter,tab,shift-tab,escape,backspace,delete,space,up,down,left,right,home,end,pageup,pagedown,ctrl-a…ctrl-z(ctrl+c,escandreturnare accepted too). send --pastesends the text as a bracketed paste when the app asked for one. To send text that starts with-, put it after--.- In
attach, pressCtrl-\twice to send oneCtrl-\to the app. - Inside a session,
AINECTO_TERM_SESSIONholds its name. A name does not change; to rename, kill the session and start it again. restorestarts again each session that was running (name, folder, command) with the environment of the shell you run it from. It does not bring back what the programs had in memory, and nothing restarts on its own after a reboot. A session that exits by itself is forgotten;killandkill-serverforget theirs.- Files are in
~/.ainecto/term/(folder only you can read): the control socket,sessions.json(whatrestorestarts) anddaemon.log(one line per request and one per answer; kept to 10 MB plus one older file,daemon.log.1). Typed text, screens and environment values are not logged. - How long a command waits, three separate limits:
- Each request to the running background process waits up to 10 seconds for its answer; then the command stops with an error and removes nothing.
- Starting the background process waits up to 10 seconds per try for it to report ready, at most 3 tries.
waititself waits until--timeout(without it, until the pattern appears or the session ends).
- Platforms: macOS, and Linux with glibc on Node.js 20.8.0 or newer (the rest of the CLI runs on Node 18).
Not Windows yet. It uses the optional dependency
node-pty, which ships prebuilt binaries — no compiler needed. If it could not be installed,ainecto termsays so and the other commands keep working.
Connector Mode
The package doubles as a stdio-to-HTTP proxy for the resolved /mcp endpoint. It proxies
initialize, tools/list, and tools/call, does not rewrite remote schemas, and does not interpret
local file references. It uses this machine's one sign-in (ainecto setup, ainecto auth login, or
the sign-in ainecto init performs) and never opens a browser on its own.
This is the entry setup --local and init --mcp --local write — you normally do not add it by hand
(without --local they write the server address instead, as above):
An older entry with --role <name> (or AINECTO_ROLE) still starts: the value is ignored, a one-line
note goes to stderr, and the server only records that an old setting is still in use. If a session
does not see the AiNecto tools, another ainecto entry (for example Claude Code's local scope) may be
hiding it — ainecto doctor checks this.
MCP Registry
server.json is the Registry entry com.ainecto/mcp (same as package.json#mcpName). It
lists the server address https://ainecto.com/mcp (remote, streamable HTTP — what setup registers) and
the npm package @ainecto/mcp (the bridge setup --local and init --mcp --local write). Registry
publication requires the npm version it references to carry that mcpName, so publish npm first.
Registration is done by a person:
npm run release -- --otp=<code>(below) so that@ainecto/mcp@<version>is on npm.- Domain login for
ainecto.com(HTTP:https://ainecto.com/.well-known/mcp-registry-authmust serve the public key; the private key is in the macOS keychain):mcp-publisher login http --domain ainecto.com --private-key "$(security find-generic-password -s codelive-mcp-registry -a ainecto.com -w)". mcp-publisher publishfrom this folder.
Up to 0.8.1 the entry was io.github.codelives/ainecto (package only); it is marked deprecated after
the first com.ainecto/mcp publish. Details in docs/mcp-registry-registration.md.
Development
Catalog Sync
sync:tools --check is intended for publish-time live drift checks. It fails fast when
AINECTO_CATALOG_SYNC_TOKEN is missing, so automatic publish cannot silently fall back to fixtures.
For local development, sync:tools can also use credentials from ainecto auth login --env <env>.
The checked-in generated catalogs are deterministic output from tools/list, live-synced from
https://ainecto.com/mcp and https://dev.ainecto.com/mcp. Presentation metadata lives separately in
src/core/catalog/enrichments.ts. ainecto tools catalog prints the local generated catalog.
Local Tarball Smoke
Live Dev MCP Smoke
This requires an authenticated dev token from ainecto auth login --env dev or a local developer
AINECTO_TOKEN.
The smoke initializes MCP, reads tools/list, calls list_projects, and prints only aggregate
metadata such as tool count and Task tool exposure.
Local Attachment Upload Smoke
This exercises the full attachments upload flow against a local API dev server: OAuth MCP token
issue, REST fixture document creation, CLI upload, list_attachments, and server filesystem byte
verification.
The smoke creates a temporary user/workspace/project/document and removes the fixture account, local
temp file, and stored upload file unless --keep is supplied.
Releasing
npm run release -- --otp=<code> runs typecheck, test and build once, then publishes that build under
three names: @ainecto/mcp (primary), ainecto, and @ainecto/cli (only the ainecto command).
--dry-run shows what would go out. An already-published name is skipped, so a retry after an expired
code is safe. The npm account needs write access to the @ainecto org (the script checks). Do not
unpublish any name.
Known Limitations
- The MCP connector implements newline-delimited stdio JSON-RPC to HTTP JSON-RPC. Streamable HTTP SSE
responses and
MCP-Session-Idsession handling are not implemented.
Source: README.md at commit 9e69eb1
Tools
0Version history
7- v0.13.1LatestNov 7, 2026
- v0.13.0Nov 6, 2026
- v0.12.2Nov 6, 2026
- v0.12.1Nov 3, 2026
- v0.11.0Nov 1, 2026
- v0.10.0Oct 29, 2026
- v0.9.0Oct 23, 2026
Score
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.