Proactive MCP server

Your agent shouldn't
wait to be asked.

Mikuji watches your repo, your logs, and your tickets, then hands your AI the right context the moment it matters.

MCP waits to be called.
Mikuji moves first.

Every other MCP server sits idle until your agent thinks to ask. Mikuji flips it: a daemon watches your world and pushes the moment something matters.

Plain MCP

Agent has to know what to ask, and when. Context it never requests stays invisible.

Mikuji

The server notices the PR, the failing log, the new ticket, and proposes before you ask.

How it works

Watch. Decide. Deliver.

Three stages run continuously inside one local daemon. No polling from the agent, no cron glue, no guesswork.

01

Watch

A long-running daemon tails your filesystem, git, GitHub, databases, logs, and webhooks, turning each change into a typed event.

02

Decide

A YAML policy engine scores every event and applies gates for quiet hours, budgets, and rate limits before anything reaches you.

03

Deliver

The proposal reaches your agent through whatever channel it supports, with a pull fallback when the host stays quiet.

Seven ways to watch
your world.

Point Mikuji at a source, give it a policy, and it starts noticing. Mix and match per project.

Git and GitHub

Branch switches, new commits, opened pull requests, and review requests become events your agent can act on.

# event: pr.review_requested
do: PROPOSE

Filesystem

Watch any path for created, changed, or deleted files.

SQL poll

Run a query on an interval; emit rows that are new.

Log tail

Follow a log file and match patterns. An error spike becomes a proposal to investigate, with the offending lines attached.

Webhook

A generic endpoint any external service can POST to.

Context inbox

Drop notes into a watched file; they reach the agent.

Policy DSL

A policy is a few
lines of YAML.

Match an event, filter it, shape the proposal, set the guardrails. No LLM in the decision path, so it stays fast, cheap, and auditable.

policies/pr-review.yaml
rule: nudge_on_review_request
when:
  watcher: github
  event: pr.review_requested
  predicate: "payload.reviewer = $me"
do:
  action: PROPOSE
  context: "PR #{{payload.pr.number}} needs review"
  suggested_tools:
    - { name: read_pr }
priority: high
cooldown: 1h
quiet_hours_respect: true
MIKUJI PROPOSES
PR #482 needs your review
You were added as a reviewer on api/cap-table. Want the diff and a draft review to start from?
read_prdraft_review
Accept
Not now

Built to be trusted
in your terminal.

Local-first

The daemon runs on your machine and binds to loopback by default. Your events never leave the box unless you say so.

Tamper-evident

Every decision and delivery is written into a hash-linked audit chain, so the record cannot be quietly rewritten.

Honest delivery

Mikuji negotiates with each host and uses only the channels it truly supports, falling back to pull when needed.

Mikuji vs a plain
MCP server.

Capability
Plain MCP
Mikuji
Direction
Pull only, on request
Proactive push, pull fallback
Triggers
None
Files, git, GitHub, SQL, logs, webhooks
Decisioning
Not applicable
YAML policy with gates and budgets
Delivery
Single response path
Capability-negotiated per host
Audit
None
Tamper-evident hash chain
Quickstart

Running in two commands.

Start the daemon, point your agent at the connector, and add your first policy. That is the whole setup.

$ npx mikuji-daemon
$ claude mcp add mikuji -- npx mikuji-mcp connect
Install the daemonConnect your agentWatch drop a policy in and go
On the roadmap

The spine ships today.
The rest is in view.

Policy marketplace Visual policy builder Learned policies Hosted multi-tenant Native Gmail and Slack Local-LLM tie-breaker

Draw your mikuji.

Give your agent a sixth sense for the work happening around it. Set it up in two minutes.