Generic MCP servers¶
Any MCP server can give Maljan's agents its tools: Maljan reads the server's manifest and calls what the operator ticks. There is no allow-list in the code and no cut to the descriptions a server advertises; the per-server tick list is the only thing that narrows it.
Add a server¶
- Open Settings → Setup guides → Add a tool server, or add an entry under
core.mcp.serversin Settings → Configuration → Analysis tools. -
Choose the transport and say how to reach the server:
Transport Fields stdiocommand,args,env,cwd, andenv_allowfor the names copied from the worker's own environmenthttp,streamable-http,sseurlandauth_token -
Test it. The probe (
POST /api/v1/settings/test/mcp) lists the tools the server advertises and, if it answerscapabilities, which of them are unavailable on its host. - Tick the tools to expose. A freshly added server exposes nothing until you
do (
tools: []);nullexposes every tool it advertises. - Say which agents receive it: by role in the entry's
agents, or by a tool reference in an agent definition.
Credentials never go in env
env is a visible setting. A token a stdio server needs reaches it through
env_allow, which copies the named variable from the worker's own
environment into the child. An auth_token for an HTTP server is stored in
its own encrypted row and never echoed.
As the static provider¶
The generic_mcp static provider hands the static analyst the tools of one
core.mcp.servers entry, named by core.static.generic.server. It is how a
reverse-engineering MCP tool Maljan has never heard of becomes the static
analyst's toolkit. Unlike Ghidra it degrades: a server that is down costs the
run its tools and is named in the run summary. An empty
core.static.generic.server attaches nothing, and the probe says so.
core.static.provider = generic_mcp
core.static.generic.server = <the key of the core.mcp.servers entry>
As a generic agent's server¶
A generic agent definition — a prompt and a tool list, no class — can name any
server in its tools. The importable all-tools team does this with
all_tools_qu1cksc0pe, a generic agent on a qu1cksc0pe server the operator
adds. See An all-tools team.
A server on another host¶
A server reached over HTTP does not share the worker's filesystem. Either mount
a shared volume, or have the server advertise put_sample and Maljan uploads
the sample to it before the agent's first call. See MCP
servers for the convention, and for the two
optional conventions that make a server a better citizen of a run.