- Category
- AI Agents
- Rank
- No. 885Tools index
Previous survey · No. 875 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Agent Building
- Interfaces
- API
- GitHub
- 6.1k stars
- Latest release
- catalog-v0.0.4
- Date
About
Monid is a connector framework that gives AI agents unified access to over 2,000 tools across 72+ providers, covering web search, data enrichment, social platforms, and media generation, through a single base URL and API key, similar in concept to OpenRouter but for tool calls instead of model calls. This repository defines the declarative connector layer that specifies how each tool is called, what it returns, and how its usage is metered.
What it does
Each outside API gets described as plain data rather than client code: who the vendor is, how a request is built, how a key is attached, and how a call is priced. A compiler turns those descriptions into one sealed bundle, and a single engine runs every one of them through the same five steps: check the input, build the request, add credentials at the last moment, settle the bill on the raw reply, then reshape and verify the output. This repository is that description format and engine; the hosted service agents actually call sits elsewhere.
Why it's ranked here
The billing design is the argument for it. Usage is settled on the vendor's raw reply before any reshaping, so a presentation change cannot quietly alter a bill, and a vendor error finishes as data charged at zero. Credentials are added only inside the transport, and the hook that sees them is deliberately given a silent logger so it cannot leak them in a log line. The tests replay recorded responses with no network, so contributors need no vendor keys. MIT licensed.
What's good
Adding a vendor is a pull request of declarations, with a worked reference connector and a written brief meant for a coding agent. Every custom function is checked three times: when written, when compiled, and on every run, so a bad one stops the run with a contract error instead of sending a garbage request. Functions are stored once under a content hash that doubles as a tamper check. The Firecrawl connector writes down which vendor charges it does not model and why, and cross-checks its own price estimate against the vendor's reported credits on every call.
Tradeoffs
It runs only on Deno, so a Node or Python shop adopts a second runtime to contribute. The parts the pitch leads with, ranking the catalog at call time with live price, health and latency, live in the hosted product, not in this code. Running locally means holding your own key for every vendor you call. The model has grown deep: resources, rate cards, ownership checks and estimate re-runs add a lot of vocabulary before a first connector. Some vendor prices are pinned by hand, because not every vendor publishes machine-readable pricing.
How to use it well
Best for two groups: an API vendor who wants its endpoints reachable by agents through the hosted service, and an engineer who wants a reference design for metering third-party calls honestly. Start from the reference connector, record a response, trim it, and keep the offline type check and replay tests green before opening a pull request. Spend most of the effort on the endpoint's plain-language description, since agents choose endpoints by reading it. It is not an agent framework and does not decide which tool to call on your behalf.
Technical notes+
engine/engine.ts loads a sealed unit through a fail-closed gate ladder (BAD_DOC, UNSUPPORTED_DOC, UNKNOWN_FN, LINK_INTEGRITY, UNSUPPORTED_FN_ABI), refuses a doc whose minEngineVersion exceeds ENGINE_VERSION, and returns a vendor-shaped 404 at zero usage when a resource binding is not owned by the workspace. engine/auth.ts is the only place credentials meet a request: applyAuth validates params against the doc's credential schema, re-verifies the inject fn's hash, and runs it with a SILENT_LOGGER; credentialEnvVarFor derives the PROVIDER_CREDENTIALS_FIELD naming. engine/request.ts validates input on clones with schema defaults materialized and encodes array query params as repeated keys only. connectors/firecrawl/provider.ts plucks creditsUsed from the raw envelope and lists unmodeled billing lines. deno.json pins zod, ajv and pino.
Observed
- License
- MIT
- Language
- TypeScript
- Runtime
- Deno 2.x, configured as a workspace of shared packages plus the engine
- Interfaces
- CLI tasks for compile, run, catalog browsing, fixture recording and cost estimates; engine importable as a library
- Testing approach
- Replay tests against recorded fixtures with no network; live tests run only when vendor credentials are set
- Credential handling
- One environment variable per credential field locally; injected inside the transport on the hosted platform
- Connector format
- Declarative provider and endpoint definitions, compiled to JSON documents with content-hashed functions
Read from README.md, deno.json, engine/engine.ts, engine/auth.ts, engine/request.ts, DEVELOPMENT.md, connectors/firecrawl/provider.ts, shared/core/schema/provider/mod.ts, LICENSE.
Tags
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.