AgenticMCP Server
Agentic · Hub

Agentic AI
Hub

Chatting with AI is the easy part. I built the layer underneath — the servers and pipelines that let Claude trigger real automations, search my own notes, and write back into the tools I work in. Custom-built, self-hosted, and mine to change.

0MCP Tools
0Pipelines
Scroll
First, a primer

USB for AI

MCP — Model Context Protocol — is one standard plug that lets any AI client talk to any tool, without writing glue code per pairing. An MCP server exposes named tools with typed inputs; the AI calls them like functions.

Concretely, in my stack: two custom MCP servers I built from scratch — one that lets Claude drive Make.com, one that gives it read/write access to my Obsidian vault — plus self-hosted n8n workflows on a VPS for the event-driven stuff. Every chip below is a real MCP tool Claude can call while I work — the Make and Vault ones I built, the rest are third-party MCPs wired into my Claude config.

make.run-scenario
vault.query
asana.create-task
notion.query-database
make.list-scenarios
vault.write
asana.search-tasks
notion.create-page
make.get-execution-logs
asana.update-task
vault.recall
vault.read
excalidraw.save-checkpoint
stitch.generate-screen
figma.implement-design
make.update-scenario

16 of the 28 tools — click through to see what each one does

01

MCP Tool Router

22 tools across 4 groups. Claude Code sends a request, the MCP server routes it to the right tool, Zod validates the inputs at runtime, and the upstream API returns the response.

Click a tool to inspect its schema, request, and response.

CC
Claude Codeagent runtime
MCP
M
MCP Server22 tools · 4 groups
route
Obsidian Vaultdestination
Asana6
Notion6
n8n5
Second Brain5
vault_recallHybrid recall (default)
Obsidian Vault
validated · zod
z.object({
  task: z.string().describe("Natural language task or query"),
  project: z.string().optional(),
  types: z.array(z.string()).optional(),
})
stdio transport · type-safe
online

One server, not 22 separate processes. Add a tool and the router picks it up — the client never changes. Zod checks every input before it runs, so a bad call fails here, not three hops upstream.

02

Pipeline Visualizer

Three event-driven pipelines running on a self-hosted n8n instance — voice-to-Notion capture, lead handling with discovery-call generation, and a YouTube production line — each with explicit human gates where judgment can't be automated.

Hover a node for details. Gates mark the points where I step in.

Idea Catcher

LIVE1 gate
Hover a node for details

Lead Pipeline

PARTIAL1 gate
Hover a node for details

YouTube Pipeline

STAGING2 gates
Hover a node for details
trigger
process
ai
human gate
output

These run without me — a webhook fires at 3am, a transcript needs filing, a lead comes in. n8n handles each in the background and pauses at a gate wherever publishing something is irreversible and needs my eyes first.

03

Knowledge Graph

A semantic map of my Obsidian vault. Type a query, the graph highlights the notes that match by meaning — not by keyword. This is how the agent finds context before answering anything that needs project memory.

Type "automation", "mcp", or "pipeline" into the search.

vault_query
>
idle
decisionn8n over MakelearningMCP Zod ValidationskillWebhook PatternsprojectPortfolio SpecfleetingAgent Memory IdeaskillClaude Code Workf…projectRemotion Pipeline
7 notes · 8 links
results
awaiting query…
decision
learning
skill
project
fleeting

When I ask Claude why I made some past decision, it runs a hybrid vault_recall first and answers from what I actually wrote, not invented history. Pure keyword search would miss it whenever I phrased the note differently.

04

Agent Orchestration

What agentic work actually looks like in practice. A main agent reads a goal, plans a sequence of tool calls, spawns sub-agents to parallelize independent work, and reports back. This is execution, not chat.

Three workflows cycle: Deploy, Research, Bug Fix.

prompt
>Deploy the new feature to staging
orchestrating
idleHover a bar for details, or watch the cursor
claude (main)
build-validator
test-runner
0.0s
0.5s
1.1s
1.6s
2.2s
2.7s
3.2s
3.8s
4.3s
4.9s
5.4s
spawn agent
Rread
Eedit
$bash
Qquery
commit
MCPn8nBraintools:22uptime:47d

You give it a goal — “deploy to staging” — and it works out the steps itself, spawning sub-agents only for genuinely parallel work. Every action in the timeline is an MCP tool call; that's all the orchestration needs.

TypeScript
MCP SDK
n8n
Obsidian
Claude Code
Node.js
make-mcp-server/src/tools/scenarios.ts
server.tool("list-scenarios", {
  teamId: z.number().describe("Make.com team ID"),
  folderId: z.number().optional(),
}, async ({ teamId, folderId }) => {
  const scenarios = await makeApi.get("/scenarios", {
    params: { teamId, folderId }
  });
  return { content: scenarios.data };
});

Why it's wired this way

  • 01
    MCP over REST wrappers

    A REST client per integration ships faster but locks me in. MCP decouples at the protocol level, so any agent client — Claude Code now, Cursor later — uses my tools with no bespoke glue.

  • 02
    Self-hosted n8n on a VPS, not a SaaS automation platform

    Make and Zapier are convenient until you hit operation limits and vendor-owned webhooks. My own n8n on a VPS means unlimited runs, endpoints under my domain, and the data on my disk.

  • 03
    Obsidian as the knowledge layer, not a custom database

    A custom database with a schema and admin UI would just be a silo nobody touches. Plain Markdown with frontmatter stays git-friendly and editor-agnostic — if the AI layer disappears tomorrow, the notes still work.

  • 04
    Atomic notes over mega-docs

    One decision, learning, or skill per file. Big docs read fine for humans but bury the signal for an agent; atomic notes let it pull exactly the context it needs and score relevance cleanly.

  • 05
    Human gates inside automation, not around it

    Each pipeline runs mostly on its own and stops only at deliberate gates — is this idea worth a task, is this video ready to publish — where a mistake would be hard to undo.

  • 06
    Sub-agents for parallel work, single context for sequential

    Spawning sub-agents for everything just adds coordination cost. I use them only for genuinely independent work, like running tests while editing; the sequential reasoning stays in one context that sees everything.

  • 07
    Plain TypeScript instead of a framework

    LangChain, AutoGen, CrewAI mostly solve problems that vanish once you have MCP and a capable runtime. So the stack stays small — TypeScript servers, Claude Code, n8n, Obsidian — with fewer layers to learn, upgrade, and break.