This Week in Miru: MCP, Safer Billing, Agent-Ready
Apr 20-28: MCP production use, cleaner CLI setup, invoice fixes, client forms, Level 5 agent readiness, and SEO schema cleanup.
Apr 20-27: 43 non-merge commits. Focus: MCP production use, simpler CLI setup, correct invoices, clearer client forms, and production stability.
Then on Apr 28 we tightened the public layer: Level 5 agent readiness, A2A discovery, controller-backed robots, richer schema, and stronger blog CTAs.

April 28 Update: Miru Is Now Agent-Native
miru.so now scans as Level 5: Agent-Native on IsItAgentReady.
Agents can now discover Miru without scraping. What changed:
- Exposed
llms.txtandllms-full.txtfor product, docs, API, CLI, MCP, pricing, and support paths - Published
/.well-known/api-catalogfor OpenAPI, MCP, docs, and agent resources - Added
/.well-known/mcp/server-card.jsonfor MCP discovery - Added
/.well-known/agent-card.jsonfor A2A discovery - Served Markdown to agents that ask for
text/markdown - Updated
robots.txtwith AI crawler rules and Content Signals
Deployed the same idea to app.miru.so: OpenAPI, API catalog, MCP server card, agent skills, A2A card, Markdown negotiation, and controller-backed robots.txt with Cache-Control: no-store.
One practical lesson: static robots.txt can get sticky in scanners and edge caches. Route it through the app when correctness matters.
April 28 Update: SEO Got Less Vague
The marketing site already had the basics: titles, descriptions, canonicals, sitemaps, RSS, and structured data. This pass made the metadata more specific:
- richer Organization, WebSite, and SoftwareApplication JSON-LD
- article schema with image, word count, tags, date modified, and canonical page IDs
- BreadcrumbList schema on blog articles, the blog index, and tag pages
- ItemList schema for blog archive and tag pages
- explicit canonical plumbing in the shared page layout
noindex, followon the 404 page- a stronger product CTA on every blog post
The goal is simple: search engines and AI answer engines should understand what Miru is without reconstructing the product from scattered page text.
1) MCP: Production-Ready and Pro-Gated
Miru now has a pro-gated MCP server and SDK client wrapper for agent workflows that should never depend on browser scraping.
What works:
- workspace identity
- project and client lists
- time entry listing, creation, update, and delete
- invoice listing, inspection, and send workflows
- payment listing and inspection
- expense listing and creation
Good path:
- user asks for unbilled work
- agent calls Miru MCP tools
- agent summarizes the result
- user approves the next action
- agent creates or sends only what was approved
Rule: do not let agents drive private app UI with selectors and hope. Use structured tools and keep writes review-first.
Related work:
- MCP server and SDK client wrapper:
35a49dd6 - MCP setup and verification docs:
9dd5be00 - MCP tool safety coverage:
17d5fe29
2) CLI Token Setup Got Cleaner
MCP is useful only if setup is not a ritual.
We added a CLI token command for MCP setup, so users can connect agent tooling without manually stitching together auth details.
That gives us a cleaner path:
miru token
configure MCP client
call Miru tools with explicit user authorization
This matters because AI-agent workflows need boring authentication. If setup is awkward, people either skip it or paste secrets into places they should not.
Related work:
- CLI token command:
5a432d3f - Host context forwarding for MCP proxy calls:
e7e71289 - Stable MCP write errors without message leakage:
8cd5dee6
3) Invoice Data Became More Correct
Billing software earns trust in the boring details.
Two invoice fixes shipped this week:
- per-project member rate mapping now feeds invoice generation correctly
- invoice line items now render employee names correctly
Those sound small until you are reviewing a client invoice and trying to explain where a number came from.
The rule is simple: if Miru knows the rate and the person who did the work, invoices should reflect that without manual cleanup.

Related work:
- Project member rate mapping for invoice generation:
a0f6386c - Invoice line-item employee name rendering:
6e02d334
4) Client Creation Stopped Hiding Required Fields
Client setup got a clarity pass.
The add-client form now marks required fields more explicitly and has system coverage around that guidance. This is the kind of form polish that prevents preventable support questions.
What changed:
- required-field helper logic is centralized
- accessible hints are clearer
- add-client form labels make required inputs obvious
- system specs cover the guidance
Related work:
- Required-field clarity:
ffc3867a - Required-field helper refactor and a11y hint:
f060a132 - System spec for client required fields:
ec1669bc
5) Production Secrets and CI Got Less Fragile
We stabilized Render session secret configuration after seeing how brittle deploy-time secret handling can get.
We also tightened MCP-related CI:
- consolidated MCP checks into the main test and lint jobs
- installed node tooling for focused MCP specs
- fixed postgres connectivity in GitHub Actions
- resolved MCP eager-load and omission-semantics issues
This is not visible product work, but it affects whether fixes ship cleanly.
Related work:
- Render session secret configuration:
239ae496 - MCP checks in main CI jobs:
c95e962f - GitHub Actions postgres connectivity:
4ef6e79b
6) Organization Settings Added US Tax Fields
US tax fields landed in organization settings.
This continues the same direction as the invoice fixes: billing data should live where billing workflows can use it. If the organization needs tax identity fields for downstream invoices, reports, or compliance workflows, they should be first-class settings, not notes in a spreadsheet.
Related work:
- US tax fields in organization settings:
98a7fc84
7) Dependencies Moved Forward
Two dependency updates shipped:
postcssfrom8.5.6to8.5.10erbfrom6.0.2to6.0.4
Not every weekly update needs a grand theory. Sometimes the right move is keeping the floor solid.
By The Numbers (Apr 20 to Apr 28)
- 43 non-merge commits
- 1 major MCP capability push
- 3 MCP setup/safety/docs improvements called out above
- 2 invoice correctness fixes
- 3 client-form clarity and coverage changes
- 2 dependency updates
- 1 agent-readiness pass that took
miru.soto Level 5 - 1 SEO schema pass across the shared blog and site layout
What This Means
Miru is moving toward a cleaner model for AI-assisted billing:
- public content is easier for agents to read
- authenticated work has MCP and API paths
- discovery is explicit through API catalog, MCP, A2A, and agent skills
- CLI setup is improving
- billing data is becoming more complete and less ambiguous
- production and CI are getting less fragile underneath
- search and AI crawlers get clearer structured data
That is the right direction. Billing workflows need automation, but they also need auditability and user intent.
Watchlist
- Expand MCP tool coverage. Priority: high. Keep writes gated.
- Publish 5 public API and MCP examples.
- Audit invoices for rates, names, and tax fields. Add coverage where the data crosses boundaries.
- Measure CLI and agent setup. Target: first tool call in under five minutes.
- Keep SEO content-first. No keyword templates.
Start with Miru at app.miru.so/signup, or read the agent guide at miru.so/ai-agents.
Vipul A M
Co-founder at Saeloun. Building Miru. Rails contributor. Shipping from Pune, India.
Read next
This Week in Miru: Safer Team Offboarding, Smarter Reminders, and Invoice Workflow Cleanup
From April 13 to April 22, we shipped 116 non-merge commits across reminders, invoicing, team management, calendars, i18n, and auth hardening.
Miru Update: Workspace Switcher, Multi-Recipient Invoices & i18n (April 2026)
Miru open-source time tracking gets a workspace switcher, multi-recipient invoices, holiday year view, and full i18n on 6 settings pages. See what shipped this week.
Miru MCP Support Is Live: Agent-Ready Time, Invoices, and Expenses
Miru now ships first-party MCP support over HTTP and stdio with CLI parity, Pro gating, and safe write patterns for automation agents.
Put it to work
Run one cleaner billing cycle in Miru.
If this article is about tracking time, billing clients, comparing tools, or automating work, Miru is the product version of that idea. Start free, invite the team, and send the next invoice from tracked work.
What you get
- Time tracking, invoices, expenses, and payments in one place.
- Free for up to 5 users. Pro is $1/member/month.
- Open source, with CLI, API, MCP, and self-hosting paths.
The article is the argument. Miru is the workflow.
Track the work, approve the hours, send the invoice, and get paid without bolting together three separate tools.