Skills/npm/ai-mcp-server

ai-mcp-server@8.2.0

VERIFIED

Publisher claims: "MCP server for 2kw.ai — EU-hosted AI platform: OpenAI-compatible LLM gateway, schema-driven document extraction, transcription, agents with a knowledge base, and cost observability. 199 tools for Claude Code, Cursor, and Windsurf." Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server) · listed in the official MCP RegistryPublisher 2kw · publishing for 202 daysInstalls 10,515Last detonated 5d ago
$claude mcp add ai-mcp-server -- npx -y @2kw/ai-mcp-server
WatchReport an issue

Coverage

Started with a decoy AI_2KW_API_KEY, BACKBONE_API_KEY; tool list observed. Tool calls with a real credential not tested.
Tested
server startup with a tagged decoy in AI_2KW_API_KEY, BACKBONE_API_KEY · MCP initialize and tools/list · every tool description, for hidden instructions · where the decoy credential went · every file read, file written and host contacted by what ran
Not tested
what the tools do when called with a real credential
Needs
AI_2KW_API_KEY, BACKBONE_API_KEY — give it to the server where it runs, through vet-skills run --secrets, so the value never enters the server's environment. Never paste a credential into a chat, a ticket or a report.

Before you give it your token

It will ask for
no credential variables read in the code; at startup it asked for AI_2KW_API_KEY, BACKBONE_API_KEY
Where it talks to
2kw.ai (its own)
What the honeypot saw
no credential files read · no network
What we could not test
what the tools do when called with a real credential

Reasonable to connect. No credential asked for, no third-party host named, Started with a decoy AI_2KW_API_KEY, BACKBONE_API_KEY; tool list observed. Tool calls with a real credential not tested.

Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios) on 2026-11-09 and scored it 86/100 (Verified). It did what it claims and nothing else we could detect: no undeclared network egress, no credential reads, no persistent instruction writes. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 47 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
6.7sprocessdependency install exit 0
27sprocessrelaunched with a decoy AI_2KW_API_KEY, BACKBONE_API_KEY (tagged; nothing real)
47sclaimed200 tools with a decoy AI_2KW_API_KEY, BACKBONE_API_KEY: 2kw_chat, 2kw_create_response, 2kw_get_response, 2kw_cancel_response, 2kw_list_models, 2kw_list_agents, 2kw_list_agent_catalog, 2kw_get_agent, 2kw_create_agent, 2kw_update_agent, 2kw_delete_agent, 2kw_list_agent_versions, 2kw_create_agent_version, 2kw_get_latest_agent_version, 2kw_list_agent_skills, 2kw_get_agent_version, 2kw_get_agent_version_policy, 2kw_deactivate_agent_version, 2kw_activate_agent_version, 2kw_list_agent_labels, 2kw_create_agent_label, 2kw_update_agent_label, 2kw_delete_agent_label, 2kw_list_agent_approvals, 2kw_decide_agent_approvals
47sprocessscript backend runs setup only
47sprocessno install scripts to re-run

Static findings

HIGH
Access to sensitive file pathspackage.json:40 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files"check:spec": "tsx --env-file=.env openapi/scripts/check-drift.ts",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Tool description instructs the agent: section addressed to the agentmcp:tools/2kw_update_agent:2 · Instruction aimed at the agent: section addressed to the agent},"instructions":{"description":"System instructions for the agent","type":"string"},"options":{"description":"Model and run oFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
HIGH
Tool description instructs the agent: section addressed to the agentmcp:tools/2kw_create_agent:2 · Instruction aimed at the agent: section addressed to the agent},"instructions":{"description":"System instructions for the agent","type":"string"},"options":{"description":"Model and run oFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
HIGH
Auto-update or dynamic fetch configurationdist/tools/agents.js:272 · Auto-update or dynamic fetch configuration — agent may load new code at runtime… server.tool("2kw_create_agent_version", "Create a new version of an agent. Auto-updates the 'latest' label. Give its model as `model` (one model) or `models` (an ordered list whose first entry is the default); one of the two is required."…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Tool description instructs the agent: section addressed to the agentmcp:tools/2kw_create_agent_version:2 · Instruction aimed at the agent: section addressed to the agent},"instructions":{"description":"System instructions for the agent","type":"string"},"options":{"description":"Model and run oFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
HIGH
Access to sensitive file pathspackage.json:37 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files"generate:spec": "tsx --env-file=.env openapi/scripts/fetch-spec.ts",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05

Cost to the agent

Instructions loaded
≈95 tok
1 file · 78 in bundle
Tool list per prompt
≈28,988 tok
200 tools · 145 per tool
Handshake
2529 ms
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 150

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

No advisories in OSV for @2kw/ai-mcp-server@8.2.0 as of 5d ago. This is the package itself, not its dependencies.