Skip to content

External MCP servers: integration + agent tools (#820, #821) - #826

Merged
07prajwal2000 merged 4 commits into
Fluxify-rest:mainfrom
07prajwal2000:feat/799-external-mcp
Oct 16, 2026
Merged

07prajwal2000 merged 4 commits into
Fluxify-rest:mainfrom
07prajwal2000:feat/799-external-mcp

Conversation

@07prajwal2000

Copy link
Copy Markdown
Collaborator

Part of #799. Closes #820, closes #821.

Why

The internal agent can only act inside Fluxify. Projects can now connect external MCP servers (GitHub, Linear, internal APIs) as integrations, and the agent can use their tools. Every external call asks the user.

What

#820 MCP integration

  • New integration group mcp (variant http): url + headers list. Dev/prod config like other groups. Header values can reference app config.
  • Only project admins can create, update or delete an mcp integration. Creators can read it.
  • Test connection lists the server's tools.

#821 Agent tools

  • Shared MCP client in packages/adapters/mcp (Streamable HTTP), reusable by AI agent blocks later.
  • Project setting settings.ai.agentMcpIntegrations picks which servers the agent can use.
  • Tools are named ext_<server>__<tool>. The new core tool list_mcp_tools({ server? }) finds them, and load_tools loads them.
  • Messages accept mentions (integration ids). A mentioned server's tools are preloaded for the run.
  • Every ext_ call asks in every mode and is never covered by "always allow". The approval event carries server.
  • Clients are opened per job and closed however the job ends.

Test helper

  • @fluxify/mcp-math: a small math MCP server for integration and e2e tests, with its own CI job.

Not in this PR

Portal (#822), e2e and docs (#823), OAuth (#824).

Tests

  • Shared client and test connection run against a real in-process MCP server.
  • Approval tests in modes.spec and modesProduction.spec; tool tests in external.spec.
  • Access tests for creator vs admin.
  • mcp-math server tests.

Shared MCP client in @fluxify/adapters (connect, listTools, callTool,
close; cfg: header resolution), now used by test-connection too.

settings.ai.agentMcpIntegrations lists the mcp integrations the agent may
use. Each job opens one client per allowed server and closes them when it
ends. Tools are ext_<server>__<tool>; list_mcp_tools lists servers and
their tools (an unreachable one shows its error); load_tools takes ext_
names; a message's `mentions` preloads a server's tools. Every ext_ call
asks in every mode and is never approved for the session; the approval
carries the server name.
Streamable HTTP math server (add, subtract, multiply, divide, sum,
slow_add) with optional required headers and a call log, so MCP
integration and e2e tests share one server instead of ad-hoc ones.
@07prajwal2000
07prajwal2000 merged commit d598bb9 into Fluxify-rest:main Oct 16, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Agent: external MCP tools (shared client, list_mcp_tools, @ mention, always ask) MCP integration: storage, access and test connection

1 participant