Atlas / MCP servers / codelives / codelives-ainecto

codelives-ainectoCAUTION

mcp/codelives/ainecto

AiNecto MCP connector for workspace, document, ERD, diagram, task, and attachment workflows.

Verdict
CAUTION
Grade
D
Trust score
65 /100
Exposed tools
3 2r · 1w · 0d
Transport
stdio
License
—
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Published as ai-erd, @ai-erd/mcp and @ai-erd/cli — the same code. Command: ai-erd.

In a terminal, from your repository root: npx -y ai-erd@latest init — it asks which role this repository's AI sessions should have and which AiNecto project to use, and signs you in through the browser if needed.

For AI agents

Ask the user which role this repository's AI sessions should have — Design, Development, Test, or Validation. Never pick one yourself. Then, from the repository root: `npx -y ai-erd@latest init --role ` (it signs the user in through the browser if needed).

  • Use a long command timeout (at least 6 minutes): sign-in waits up to 5 minutes for the user.
  • If init lists projects, ask the user which one and re-run with --project . If it says

this is not the repository root, re-run from the folder it names.

  • No restart is needed. Right after init, keep working in the same session through the CLI:

ai-erd commands run from the repository read its role on every call (read .ai-erd/HARNESS.md, then ai-erd tools list and ai-erd tools call ''). Do not use MCP tools the session started with for that work — they keep the role (or no role) the session started with.

  • A new session is optional and only adds the role's MCP tools (Claude Code: exit, then claude -c

in this folder to keep the conversation; approve the ai-erd server from .mcp.json when asked). Codex: save the profile init prints and start with codex -p .

  • A server added during a session is not available in that session. In our test, a server added

with claude mcp add while Claude Code was running did not attach to the running session — that is why the CLI is the way to keep going. /mcp shows what the current session actually loaded.

  • Inside the repository, ai-erd commands (ai-erd tools call ...) use the repository's role

automatically — do not pass --role; a d

Read from source at commit ee6d505ccaa6OBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add mcp -- npx -y @ai-erd/[email protected]
03

Exposed tools (3)

2 read · 1 write · 0 destructive.

ToolRiskDescription
create_documentswriteCreate documents.
list_projectsread
mcp__ainecto__list_projectsread
04

Trust audit

CAUTIONgrade D · trust 65/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
declared (7 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (20)

MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/core/auth/oauth.ts:368
const url = new URL(req.url ?? "/", "http://127.0.0.1");
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/core/auth/oauth.ts:410
redirectUri: `http://127.0.0.1:${address.port}/callback`,
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
test/attachmentsUploadCommand.test.ts:57
token: "upload-token-redacted",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
test/attachmentsUploadCommand.test.ts:185
token: "upload-token-redacted",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
test/attachmentsUploadCommand.test.ts:234
token: "upload-token-redacted",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
test/attachmentsUploadCommand.test.ts:272
token: "upload-token-redacted",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
test/attachmentsUploadCommand.test.ts:318
token: "upload-token-redacted",
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/adapters/cli/ainectoCli.ts:1
import { FileTokenStore } from "../../core/auth/tokenStore";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/adapters/cli/ainectoCli.ts:2
import { OAuthClient } from "../../core/auth/oauth";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/adapters/cli/ainectoCli.ts:3
import { resolveEndpoint, assertEnv, type AinectoEnv } from "../../core/config/endpoints";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/adapters/cli/ainectoCli.ts:4
import { parsePayloadSource } from "../../core/input/payloadSource";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/adapters/cli/ainectoCli.ts:5
import { McpRpcClient, isToolError } from "../../core/mcp/rpcClient";
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/clientRegistration.test.ts:8
redirect_uris: ["http://127.0.0.1:1234/callback"],
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/clientRegistration.test.ts:16
"http://127.0.0.1:1234/callback",
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/clientRegistration.test.ts:26
"http://127.0.0.1:1234/callback",
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@types/node, tsup, tsx, typescript, vitest
Why it matters. 5 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
README.md:242
This exercises the full `attachments upload` flow against a local API dev server: OAuth MCP token
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
docs/interactive-init-design-20260929.md:602
| D4 | 같은 HARNESS.DOC «Switching roles»(`HARNESS.DOC.en-US.md:46-55`, 레지스트리 r3 의 같은 절) | "Change the role in the MCP server configuration and start a new session: ... Or run `ai-erd init --role <...>`
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOPrompt injection · prompt.fetch_and_trust · CWE-94, CWE-1427
docs/interactive-init-design-20260929.md:393
If the user is not signed in for that role, it opens a browser and the user approves there. If it lists projects, ask the user which one and run it again with --project <uuid>. If there is no project
Why it matters. remote text is to be obeyed as instructions

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-12 · audit v0.4.1 · source sha ee6d505ccaa6full audit observations/trust-audit/mcp-server/codelives__ainecto.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12ee6d505ccaa6CAUTIOND65first audit
06

Questions

What is the codelives-ainecto MCP server?

AiNecto MCP connector for workspace, document, ERD, diagram, task, and attachment workflows.

What tools does codelives-ainecto expose?

3 in total: 2 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is codelives-ainecto safe to connect to an agent?

With care. The audit graded it D (65/100) and found 20 things worth knowing before you trust this server, listed below with the exact line each was found on.

What credentials does codelives-ainecto need?

It reads AINECTO_CATALOG_SYNC_TOKEN and AINECTO_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does codelives-ainecto run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as @ai-erd/mcp at 0.4.6.

How current is this page?

The grade is for one exact copy of the source (ee6d505ccaa6), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement