Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

agent4.io

by agent4.ioversion 1.4.0i★ –iRuns in the cloud
Registry nameio.agent4/agent4-tenant

Install

Overview

Description from the maker (original English)

Build and run grounded business agents over MCP: agents, knowledge bases, skills, Storylines.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs in the cloud
  • Transport: Streamable HTTP
  • Category: Search & AI memory
  • You need to fill in: X-API-Key

Install

Pick the AI app you use, then copy the settings.

Before you install

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Run this in your terminal

claude mcp add --transport http agent4-tenant https://api.agent4.io/v1/mcp --header 'X-API-Key: your-value'

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "agent4-tenant": {
      "url": "https://api.agent4.io/v1/mcp",
      "headers": {
        "X-API-Key": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "agent4-tenant": {
      "type": "http",
      "url": "https://api.agent4.io/v1/mcp",
      "headers": {
        "X-API-Key": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • X-API-Key secret required HTTP header
    Your agent4.io tenant API key (console → Settings → Security; shown once at creation).

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Connect over the internet in

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

All apps, with pros and cons →

What it can do

Tool names and descriptions exactly as the server reported them on Nov 10, 2026. The maker wrote them, not us; we show them as plain text.

  • list_agents

    List all agents in this tenant (name + published state).

  • get_agent

    Get one agent's full configuration (soul/task/tools/skills/knowledge_bases/model/params).

  • create_agent

    Create an agent. `name` is lower-cased on save — it is a key, not a display name. soul = persona/identity; task = duties and boundaries; tools = tool-name whitelist (check list_tools first; the system tools time/geo/weather **and `compute_chart`** are **auto-enabled by default**,

  • update_agent

    Update **part** of an agent — fields you don't pass stay as they are. ⚠️ List-field semantics, don't mix them up: `tools=[...]` / `skills=[...]` / `knowledge_bases=[...]` are **full-list replacement** — items you didn't read first get pushed out. To "add one / remove one", use `a

  • list_tools

    List tool names assignable to agents, with their descriptions (incl. the tenant's connected MCP tools).

  • list_mcp_servers

    List the MCP servers connected in this tenant's tool library (read-only; secret fields omitted).

  • create_share

    Create a **share / integration entry point** for an agent — this is how end users actually reach it. **`published=True` only means "visible", not "reachable"**: for end users to talk to the agent you must create a share. The response carries a directly openable chat link (`{publi

  • list_shares

    List an agent's shares (token / label / disabled / chat link / embed URL / appearance config). When the top-level `pretty_url` is non-empty it is the preferred link to give humans (see create_share).

  • configure_share

    Configure this share — its name and its **appearance** — fields you don't pass stay as they are (server-side partial merge). - `label`: the name at the top of the chat page, and the browser tab's title. **Renaming a share is this call**; you never need to create a replacement and

  • set_pwa_branding

    Configure a specific **agent's** PWA branding and install experience (applies to that agent's `/s/` standalone chat pages — what gets installed to the home screen is one agent's entry page, so each agent is its own app). - `agent`: the agent name whose install branding to configu

  • set_custom_domain

    Bind the client's own domain to this tenant's chat pages: `https://chat.client.com/` serves the tenant's branded page (or a specific agent's chat), the address bar keeps the client's domain, and the TLS certificate is issued automatically. **Have the client configure DNS first**:

  • list_skills

    List this tenant's skills.

  • get_skill

    Get one skill's full content (including the complete instructions text).

  • create_skill

    Create a skill. description = "when to use" (goes into the system prompt, keep it short); instructions = the detailed guide (fetched on demand via load_skill). The paradigm (important): instructions are visible only AFTER the model calls load_skill — if calling some tool is **man

  • update_skill

    Update part of a skill — fields you don't pass stay as they are (server-side PATCH merge, no GET+PUT round-trip). ⚠️ `tools=[...]` is **full-list replacement**; to add/remove one use `add_tools`/`remove_tools` (incremental, idempotent). Tools bound to a skill take effect automati

  • test_skill_trigger

    Reality-check whether your prompts actually trigger tool calls (dry-run) — run this after writing/changing a skill instead of counting corpses in production. Replays your messages N times against the **production** system-prompt assembly, tool schemas and this tenant's actual mod

  • list_knowledge_bases

    List this tenant's knowledge bases (with doc/chunk counts and relevance cutoff).

  • get_knowledge_base

    Get one knowledge base's configuration (including the full instructions text shown to the model).

  • create_knowledge_base

    Create a knowledge base. **Write `description` — it is what routes questions to this base.** Before each answer the platform reads every attached base's `description` and decides which ones this question needs; a base whose description is vague or blank gets searched when it shou

  • update_knowledge_base

    Update part of a knowledge base — fields you don't pass stay as they are (server-side PATCH merge).

  • add_knowledge_text

    Add a **text** document to a knowledge base (chunking + embedding happen synchronously; returns the real chunk count). For **local files** (pdf/docx…) see `add_knowledge_file`.

  • add_knowledge_file

    Add a local file's content to a knowledge base (txt/md/html/pdf/docx). **This MCP runs on the platform server and cannot read paths on YOUR machine.** For text files, read the content yourself and call `add_knowledge_text`; for binaries (pdf/docx), upload via the console, or curl

  • search_knowledge_base

    Search this knowledge base; returns matching chunks with distances. Uses **exactly the same retrieval path as real conversations** — use it to validate the cutoff and chunking: an empty result means this question will be judged "not covered" and the agent will answer "not in the

  • build_knowledge_index

    Build (or rebuild) the structured index for a knowledge base — the second leg beside vector search. Vector search answers "what does this passage say". It **cannot count, filter numerically or aggregate**, so "how many documents", "which ones are between 1000 and 2000 words", "ho

  • get_knowledge_index

    Show the structured index profile: per column coverage, type, numeric range, top values, warnings. **The warnings are the point.** On a real 4,500-document catalogue this surfaced three data problems nobody knew about: 1,058 documents with `page_count` 0, 505 with `reading_level`

  • patch_knowledge_index

    Change the structured index schema from one sentence of plain language. Example requests: "also track the author so users can find other books by them", "I want to filter by illustrator", "drop the cover link". The model may only emit add/modify/remove/refused — it cannot rewrite

  • improve_prompt

    Rewrite a field's text to work better as an AI system prompt; returns the improved text. field ∈ persona | task | greeting | storyline_task | storyline_opening | storyline_ai_trigger | storyline_ai_criteria | skill_description | skill_instructions | kb_description | kb_instructio

  • diagnose_prompt

    Read a field and return a list of **specific** improvement suggestions (string array). field: same values as improve_prompt. current = the text to diagnose (required — an empty text has nothing to diagnose). Typical flow: diagnose_prompt first, pick the suggestions you want, then

  • test_planner_trigger

    Dry-run the Dynamic Planner's escalation judge: would these messages be offered a step-by-step plan? Use it after editing the agent's `task`, since the task text is the **business-domain gate** — a vague task lets out-of-domain requests through, a narrow one turns real customers

  • preview_plan

    Generate a plan for a goal and return it for review **without persisting anything** — no temporary storyline, no enrollment, no user affected. Use it to inspect plan quality before trusting the feature in production, or to see how the agent's `task` constrains the steps. Returns

  • usage_stats

    Usage statistics. group ∈ total | agent | user | space | day | model. Metadata only — token counts and event counts, never any conversation content. Use group="user" to see who uses the most, group="agent" for the busiest agent.

  • tenant_info

    This tenant's basic info and quota (plus custom-domain binding status, if any).

  • search_agent4_docs

    Search agent4.io's own product docs — concepts (what a thing *is*) and cookbook recipes (which tool to *call*). Use when you're unsure how an agent4.io feature works, what a term means, or how to build something on the platform. Returns top passages with title, layer ("concept"|"

  • list_end_users

    List this tenant's **end users** (the people chatting with your agents) — roster only, never any conversation content. Each user carries: display name, login method (email / oauth:* / proxy), email (if any), space/session/document counts, last-24h token usage, and a `console_url`

  • get_end_user

    Get one end user's detail: basic profile (name, contact email/phone, city, timezone) + their spaces. Never any conversation content. Carries a `console_url` to the user's detail page.

  • list_user_sessions

    List one end user's **sessions** — metadata only: agent, title (AI summary), message count, tokens, timestamps. **Message bodies are not returned.** Transcripts are rendered in the console: each session carries a `console_url` that **deep-links straight to that conversation, auto

  • list_page_contexts

    List all page playbooks of this tenant (with match rules, greeting mode, position).

  • upsert_page_context

    Create or fully replace a page playbook. `context` is the page background the **server** injects for the agent — write "who lands on this page, what they are deciding, what they usually worry about"; do NOT write facts like prices or quotas (those belong in a knowledge base, whic

  • resolve_page_context

    Given a URL (or key), show which playbook it resolves to — always verify after writing a match rule. Globs make it easy to write rules that "look right but never match" (one `*` short, one path level too many) — and in production the only symptom is visitors silently getting the

  • page_context_stats

    Open counts and suggested-question click counts per playbook — find copy nobody clicks.

  • list_storylines

    List this tenant's storylines (optionally filtered by agent). Includes state, version, default flag.

  • get_storyline

    Get one storyline's full definition (whole graph + profile_schema + top-level fields).

  • create_storyline

    Create a storyline draft. After creating, self-check with validate_storyline, then publish_storyline. user_visibility — what the end user sees of their own run: "invisible" (default, no UI), "named" (a banner with the storyline name only), "trail" (banner + read-only view where u

  • update_storyline

    Update **part** of a storyline draft — fields you don't pass stay as they are (GET-then-merge on top of a full PUT underneath). concurrency: "user" = progress belongs to the person (shared across sessions); "session" = progress belongs to the case (one run per session). Changes a

  • validate_storyline

    Validate the storyline graph (entry / dead ends / unreachable / dangling / cross-line targets / rule dimensions). Returns {ok, errors}. Must pass before publishing.

  • publish_storyline

    Publish a storyline: validates first (blocking errors → 422), then freezes an immutable version and marks it published.

  • unpublish_storyline

    Unpublish (archive): no more auto-enrolment; in-flight users silently degrade to the plain agent on their next turn (progress kept — re-publishing resumes it).

  • clone_storyline

    Clone a storyline into a new draft (new key, unpublished, doesn't claim default, no chain pointer) for tweaking.

  • export_storyline

    Export a portable storyline JSON (schema_version + definition; no tenant/version/id) for backup, migration or re-import.

  • import_storyline

    Import an exported storyline JSON as a draft. **Artifacts like "generate a storyline from a novel / source material" land here.** payload = the structure returned by export_storyline (schema_version + graph + profile_schema + top-level fields). Version-aware: payloads newer than

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026

  • ! Caution

    Maker matches the repo

    The registry lists no source repo, so we cannot match the publisher (agent4.io) to the code

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • ✓ Pass

    Endpoint responds

    Responded in 327 ms (HTTP 200)

  • – Not applicable

    Sign-in with OAuth

    No sign-in needed

  • ✓ Pass

    No hidden instructions in tool descriptions

    Read 50 tool descriptions and found no hidden instructions to the AI

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 5873 servers in this category
  • Published to the registry more recently than 26% of the other 5873 servers in this category
  • Basic checks equal to or better than 44% of the other 5873 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is agent4.io safe?

It passed 2 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: X-API-Key

Does it run on my computer or in the cloud?

It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.4.0) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Ruflo, Context7, Metabase

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Ruflo

Agent teams, swarms, memory and hooks for Claude Code and Codex, served over MCP.

by ruvnetWidely used↓ 74.3K/wk★ 81.4KUpdated yesterday

Runs on your computer

Context7

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

by upstashWidely used↓ 1.2M/wk★ 64.4KUpdated yesterday

Computer or cloud

Metabase

Lets AI clients search, explore, query, and visualize data in a Metabase instance.

by metabaseWidely used★ 50.3KUpdated 6 months ago

Runs in the cloud

README from the maker

No README found in the repo