MCP Enricher — Look Up Every Row in Your Own Apps avatar

MCP Enricher — Look Up Every Row in Your Own Apps

Pricing

from $2.00 / 1,000 results

Go to Apify Store
MCP Enricher — Look Up Every Row in Your Own Apps

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

alaudin burki

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

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:

FieldMeaning
<outputField>The tool's reply, flattened to text
<outputField>_oktrue/false — so you can filter
<outputField>_errorWhy it failed, when it did
<outputField>_toolWhich 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_contact and 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 0 where 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 null rather 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.