Federated Search
Provides integration with SearXNG for web search capabilities in federated search.
Click on "Install 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: Recall
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceMCP server for context-aware memory and retrieval with hybrid search, dual-phase memory, and boundary-first security.Last updated3MIT
- Alicense-qualityAmaintenanceMCP server providing AI agents with a typed-edge graph memory layer that enables bounded hallucination, surgical forgetting, and audit trails, supporting multiple clients like Claude Desktop and Cursor.Last updatedApache 2.0
- Flicense-qualityBmaintenanceMCP 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.Last updated2
- Alicense-qualityDmaintenanceA local MCP memory server for edge devices that uses graph-backed retrieval to connect related facts across passages, enabling high-precision, offline capable search and memory for agents.Last updatedMIT
Related MCP Connectors
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
Secure, user-owned long-term memory for AI agents over OAuth-protected remote MCP. Save, search, recall, update, and govern preferences, project context, decisions, and task state across ChatGPT, Claude, Copilot, IDEs, and CLIs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ArkTechNWA/federated-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server