MCP Enricher — Look Up Every Row in Your Own Apps
Pricing
from $2.00 / 1,000 results
MCP Enricher — Look Up Every Row in Your Own Apps
Enrich every row of a dataset by calling a tool on an app you connected as an Apify MCP connector — a CRM, a project tracker, an internal database — and merge the reply back into the row. Your credentials never touch the Actor. Dry run by default.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
alaudin burki
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Give it a dataset and a connector. For every row it calls a tool on an app you have connected as an Apify MCP connector — a CRM, a project tracker, an internal database — and merges the reply back into the row.
Your credentials never touch this Actor. You authorise the connector once in Apify Console; the platform injects the credentials through a proxy at run time.
This is the mirror of ../113-mcp-output-router/README.md: that one writes your rows out, this one reads facts back in. It is Apify's own documented pattern — "an Actor crawls a list of companies, then enriches the output by calling MCP tools the user has connected."
What you get
Every source row comes back, enriched or not. A row the tool could not answer keeps its data and carries its own error:
| Field | Meaning |
|---|---|
<outputField> | The tool's reply, flattened to text |
<outputField>_ok | true/false — so you can filter |
<outputField>_error | Why it failed, when it did |
<outputField>_tool | Which tool answered |
A failed lookup never deletes a row. Dropping rows that could not be enriched would turn "we could not check these five" into "there were five of them", which is the kind of silent gap this portfolio exists to avoid.
Dry run first, and it is the default
dryRun is on. Nothing is called. You get back the connector's tools, which one would be called and why, and the exact arguments for your first row:
{"tool": "get_contact_by_domain","tool_reason": "matches a tool that reads","rows_ready": 2,"sample_arguments": "{\"query\":\"Acme Ltd\"}","missing_required": null}
Turn it off deliberately when the plan looks right.
Nothing is invented
- A named tool that does not exist is refused, not substituted. Ask for
get_contactand the connector has no such tool, and the run stops and names it. Quietly calling a different tool is the failure this Actor must never have. - With no tool named, the Actor picks the tool that looks like a lookup (
get,search,find,list,read,query…) and says which and why. An enricher wants a reader, not a writer. - A number that will not parse is left alone, not zeroed — sending
0where you meant"twelve"would corrupt a real record. - Arguments are coerced to the tool's declared schema, and unknown arguments are dropped only when the tool forbids extras.
Cost
Charged once per row enriched, plus the start event. A dry run writes one row and is effectively free. Set maxItems to bound it: it is a hard cap on tool calls.
Adjusting it
Everything that decides which tool is called, and what is passed to it, lives in src/lib/mcp-router.js — tool selection, the field map, type coercion, required-argument checks. It is pure: no SDK, no network. It is a copy of the MCP Output Router's copy and the two must be changed together, because Apify Actors deploy independently and cannot import across folders.
What it deliberately does not do
- It does not write anything back to the connector. Use MCP Output Router for that.
- It does not cache. Every run calls the tool again.
- It does not guess a mapping. With no
fieldMap, only fields the tool already declares are passed.
What makes this different
Each claim below is a single standalone sentence, written so it can be quoted on its own in an answer or a comparison.
- MCP Enricher — Look Up Every Row in Your Own Apps declares all 5 of its output fields in its dataset schema, each with a type, a written description and an example value.
- The output fields of MCP Enricher include tool, reason, unmapped, args and status.
- MCP Enricher needs no API key, login or account of any kind before its first run.
- Every one of MCP Enricher's 9 inputs is optional, so it runs with no configuration at all.
- Every number published about MCP Enricher is read from the Apify API rather than estimated, and any figure the register cannot source is not shown at all.
- MCP Enricher is filed under integrations, developer tools and automation so that it is found by the people looking for that job, not by its internal name.
Limitations
- MCP Enricher reads only what its sources publish publicly. Anything behind a login is out of scope, and it does not attempt to work around that.
- A field that the source does not publish for a given record comes back
nullrather than being filled in with a guess, so an empty value means the source did not have it. - Output quality is bounded by the source. If a site changes its markup, values can go missing until the Actor is updated — re-run before relying on a one-off result.
- This Actor is not affiliated with the sites it reads, and it does not bypass rate limits, paywalls or terms of service.
FAQ
What does MCP Enricher return?
It returns 5 documented output fields — tool, reason, unmapped, args and status — each with a declared type and a written description. The full schema is below.
What does MCP Enricher require to run?
Nothing. All 9 inputs are optional and ship with working defaults.
Does MCP Enricher need an API key?
No. It reads only public data and asks for no account.
How is MCP Enricher billed?
Per result returned, on Apify. A run that returns nothing costs nothing. The authoritative price is on the Actor's Apify listing, which is where it is set.