io-mcp
Enables paper discovery and searching through the arXiv API, used for research workflows including paper digests and one-off paper searches.
Targets Fedora and systemd Linux systems for deployment of the toolkit and its services.
Enables push notifications via ntfy for paper digests and homelab health alerts.
Provides local LLM inference via Ollama for paper relevance scoring, log summarization, and homelab summaries.
Enables homelab monitoring through structured host health checks and raw PromQL queries against Prometheus.
Enables paper discovery and relevance scoring through the Semantic Scholar API, with graceful degradation to arXiv alone when throttled.
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., "@io-mcpcheck host health"
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.
io-mcp
Local Research & Homelab Assistant Toolkit — a Python tool suite that automates research workflows (paper discovery, relevance scoring, digests) and homelab monitoring (Prometheus, logs), exposed through an MCP server for Open WebUI and a CLI for cron/systemd jobs. Both frontends share one core library. LLM inference is local via Ollama — no cloud API dependencies.
Features
Paper digests — query arXiv + Semantic Scholar for your interests, score relevance with a local model, and push a digest to ntfy.
Homelab status — structured host health and raw PromQL against Prometheus.
Log summaries — journald logs summarized by a local model.
Two frontends, one core — MCP (Streamable HTTP) for Open WebUI, CLI for cron.
Related MCP server: openresearch-mcp
Install
Target is Fedora / any systemd Linux. One script sets up an isolated environment (venv or conda), installs io-mcp, and (optionally) systemd units:
git clone <your-remote> io-mcp && cd io-mcp
./deploy/install.sh --systemd --timer # venv
# or: ./deploy/install.sh --method conda --systemd --timerFull deployment details, options, and external-service setup:
deploy/README.md.
Manual install (development)
python3 -m venv .venv && source .venv/bin/activate
pip install -e '.[dev]' # editable is required (prompts/ resolves at runtime)
io-mcp init # writes ~/.config/io-mcp/config.yaml + state.dbConfiguration
Single YAML file at ~/.config/io-mcp/config.yaml (see
config.example.yaml). Any value can be overridden by an
environment variable with the IO_MCP_ prefix and __ nesting:
IO_MCP_OLLAMA__BASE_URL=http://localhost:11434
IO_MCP_NTFY__BASE_URL=http://10.0.0.88
IO_MCP_SERVER__PORT=8484io-mcp config prints the fully resolved configuration.
Semantic Scholar API key (optional)
Paper discovery uses arXiv + Semantic Scholar. The unauthenticated Semantic Scholar API is a shared, heavily throttled pool (HTTP 429); discovery retries with backoff and, if it stays throttled, degrades gracefully to arXiv alone. For reliable Semantic Scholar results, get a free API key and expose it in the environment where the digest runs (it is never stored in config):
export SEMANTIC_SCHOLAR_API_KEY=your-key-hereFor the systemd timer, uncomment the Environment= line in
deploy/io-mcp-digest.service.
CLI
io-mcp digest Run discovery → score → digest → notify (ntfy)
--dry-run Show results without notifying
--since YYYY-MM-DD Override lookback date
--interests NAME Restrict to specific interest group(s)
--prune-days N Prune seen papers older than N days after the run
io-mcp search QUERY One-off paper search (--source arxiv|s2|both, --limit N, --score)
io-mcp homelab-digest Snapshot homelab health; alert via ntfy on problems
--dry-run Show results without notifying
--always Notify even when everything is healthy
--summarize Add an Ollama natural-language summary (uses the GPU)
io-mcp status Homelab host health (--host NAME, --json)
io-mcp query PROMQL Raw PromQL query
io-mcp logs Summarize logs (--host, --unit, --since, --priority)
io-mcp serve Start the MCP server (--host, --port)
io-mcp config Print resolved configuration
io-mcp init Create default config + state databaseMCP server
io-mcp serve # binds server.host:server.port from config, path /mcpConnect in Open WebUI: Admin Settings → External Tools → + Add Server →
MCP (Streamable HTTP) → http://127.0.0.1:8484/mcp. Exposed tools:
search_papers, score_paper, run_digest, recent_papers, host_status,
service_status, probe_status, homelab_overview, query_prometheus,
send_notification, summarize_logs, list_tools.
list_tools is a self-describing helper: some clients (e.g. Open WebUI) collapse
the whole server into a single io-mcp entry, so the agent can call list_tools
to discover the individual tools with their descriptions and parameters.
Development
pip install -e '.[dev]'
pytest # all external services are mocked; no network needed
ruff check .Project layout
io_mcp/ core library (config, state, ollama, notify) + tools/ + server + cli
prompts/ system prompts (loaded at runtime; keep with the repo)
deploy/ install.sh, systemd units, crontab example, deployment guide
tests/ pytest suite (mocked APIs, in-memory SQLite)Requirements
Python ≥ 3.11
Ollama with your chosen models pulled
ntfy (self-hosted or ntfy.sh) for digest notifications
Prometheus + node_exporter for homelab tools (optional)
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
- Flicense-qualityDmaintenanceA server that enables seamless integration between local Ollama LLM instances and MCP-compatible applications, providing advanced task decomposition, evaluation, and workflow management capabilities.6
- Alicense-qualityAmaintenanceZero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.10Apache 2.0
- Alicense-qualityBmaintenanceLocal-first MCP server for indexing and searching research materials (papers, notes, logs, READMEs) using SQLite FTS, with tools for memory management and evidence retrieval.MIT
- AlicenseAqualityCmaintenanceAn MCP server exposing 72 tools across 26 homelab services, enabling LLMs to monitor and manage infrastructure, media, storage, and networking with a single endpoint.16MIT
Related MCP Connectors
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
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/bnjenner/io-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server