Federated Search
Provides integration with SearXNG for web search capabilities in federated search.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Federated Searchsearch all banks for 'Kronos deployment status'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Federated Search
One query, all knowledge. A federation MCP server that sits in front of multiple memory backends and presents a unified search surface to AI agents.
What It Does
Instead of an agent juggling 3-4 MCP connections and deciding which backend to query, federation handles it:
Agent → fed_search("Kronos") → Federation
├→ Knowledge Graph (curated entities)
├→ Flex (session history)
└→ SearXNG (web, opt-in)
← merged, ranked, one responseResults are priority-ordered by bank, relevance-ranked within each bank, and filtered for signal quality.
Related MCP server: Qdrant Neo4j Crawl4AI MCP Server
Tools
fed_search(query, db?, limit?, mode?, domain?)
Search across all subscribed memory banks.
Parameter | Default | Description |
| required | What to search for |
| all defaults | Bank ID or comma-separated IDs. |
| 10 | Max results. |
|
|
|
| none | Pre-filter KG results to an index alias. |
fed_banks()
Returns registered banks with priorities, descriptions, and health status.
Architecture
federation/
server.py # FastMCP server — tool definitions
federation.py # Core engine — fan-out, merge, rank
config.py # YAML config loader
types.py # FederatedResult envelope, BankConfig, SearchRequest
filters.py # Signal quality — confidence floor, adaptive count, dedup
formatter.py # Markdown output formatting
plugins/
base.py # BankPlugin ABC
kg.py # Knowledge graph MCP plugin
flex.py # Flex session history plugin
searxng.py # SearXNG web search pluginPlugin System
Each backend is a plugin that translates fed_search into native queries and packs results into a universal envelope:
class MyPlugin(BankPlugin):
async def search(self, query, limit=10, mode="broad", domain=None):
# Call your backend, return list[FederatedResult]
async def health_check(self):
# Return BankStatus.HEALTHY / DEGRADED / DOWNAdding a new bank = write a plugin class + add a YAML config block. No core changes.
See skills/federation-plugin-dev.md for the full plugin development guide.
Signal Quality
Query validation — rejects empty, single-char, and stopword queries
Confidence floor — results below 0.25 relevance get cut
Adaptive count — when strong results exist, weak tail is trimmed with a note
Bank representation — each bank gets at least 1 result slot
Cross-bank annotation — flex chunks referencing KG entities get
overlaps_withmetadata
Config
config.yaml defines agents and their bank subscriptions:
agents:
my_agent:
port: 4001
banks:
- id: knowledge_graph
type: kg
label: "Curated Knowledge"
description: "Agent-curated structured knowledge graph"
priority: 1 # lower = results sort first
default: true # searched when no db= specified
url: "http://127.0.0.1:3101/mcp"
auth: "Bearer ${KG_AUTH_TOKEN}"
- id: web
type: searxng
priority: 99
default: false # opt-in only
url: "http://your-searxng:8080"Copy config.yaml to config.local.yaml and fill in real values. The local config is gitignored.
Setup
python3 -m venv .venv
source .venv/bin/activate
pip install -e .Usage
# stdio mode (for Claude Code MCP)
python -m federation.server --agent my_agent --config config.local.yaml
# HTTP mode
python -m federation.server --agent my_agent --config config.local.yaml --http --port 4001Add to Claude Code
claude mcp add fed-search -s user -- \
/path/to/.venv/bin/python -m federation.server \
--agent my_agent --config /path/to/config.local.yamlLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP memory server. One memory your agents share — across models, devices and apps.
- EngramOAuthapp.getengram
Persistent, verbatim, searchable memory for AI assistants — one memory across every MCP client.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Persistent, portable memory for AI assistants — your private memory graph, from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for context-aware memory and retrieval with hybrid search, dual-phase memory, and boundary-first security.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables autonomous orchestration of vector search, knowledge graph queries, and web crawling through a single MCP interface, providing agentic RAG capabilities for AI assistants.7MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that gives AI agents and teams persistent, shared memory using a knowledge graph with vector embeddings, automatic consolidation of related facts, and hybrid search.3-
- FlicenseNot gradedqualityDmaintenanceTwo MCP servers (knowledge base and journal) enabling AI agents to persistently store, search, and recall knowledge and reflections with multilingual semantic search.-