Exa ACTION
Find Similar Links
- Action
- Read only
- API key
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Exa account once, then configure and run Find Similar Links from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "exa-find-similar-links",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
exa: { authProvisionId: "apn_xxxxxxx" },
url: "URL",
numResults: 10,
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "exa-find-similar-links",
"configured_props": {
"exa": { "authProvisionId": "apn_xxxxxxx" },
"url": "URL",
"numResults": 10
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "exa",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "exa-find-similar-links",
arguments: {
url: "URL",
numResults: 10,
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
url URL | string | Seed URL for the legacy Find Similar Links action. For new workflows, prefer deriving a Search query from the seed page. Example: https://arxiv.org/abs/2307.06435 Required |
numResults Number of Results | integer | Number of search results to return. Exa currently supports up to 100 results for supported search types. Optional |
includeDomains Include Domains | string[] | List of domains to include in the search results Optional |
excludeDomains Exclude Domains | string[] | List of domains to exclude from the search results Optional |
startCrawlDate Start Crawl Date | string | Results will only include links crawled after this date (ISO 8601 format). Example: 2025-01-01T00:00:00Z Optional |
endCrawlDate End Crawl Date | string | Results will only include links crawled before this date (ISO 8601 format). Example: 2025-01-01T00:00:00Z Optional |
startPublishedDate Start Published Date | string | Results will only include links published after this date (ISO 8601 format). Example: 2025-01-01T00:00:00Z Optional |
endPublishedDate End Published Date | string | Results will only include links published before this date (ISO 8601 format). Example: 2025-01-01T00:00:00Z Optional |
includeText Include Text | string[] | List of strings that must be present in the webpage text (max 5 words per string) Optional |
excludeText Exclude Text | string[] | List of strings that must not be present in the webpage text Optional |
moderation Include Moderation | boolean | Whether to filter unsafe content from results Optional |
excludeSourceDomain Exclude Source Domain | boolean | Exclude the seed URL's domain from Find Similar results. Optional |
contentsText Contents - Text | boolean | Return full page text. Prefer Highlights when you want a smaller, more targeted context window. Optional |
contentsTextMaxCharacters Contents - Text Max Characters | integer | Optional cap on returned text length. Optional |
contentsTextIncludeHtmlTags Contents - Text Include HTML Tags | boolean | Whether to preserve HTML tags in extracted text. Optional |
contentsTextVerbosity Contents - Text Verbosity | string | Level of detail for extracted text. Exa recommends using Max Age Hours of 0 when you need filtered live text. Optional |
contentsTextIncludeSections Contents - Text Include Sections | string[] | Only include these page sections. Most reliable with Max Age Hours set to 0. Optional |
contentsTextExcludeSections Contents - Text Exclude Sections | string[] | Exclude these page sections. Most reliable with Max Age Hours set to 0. Optional |
contentsHighlights Contents - Highlights | boolean | Return token-efficient highlights. This is the recommended default extraction mode for most Exa workflows. Optional |
contentsHighlightsQuery Contents - Highlights Query | string | Optional query to guide which highlights Exa should return. Optional |
contentsHighlightsMaxCharacters Contents - Highlights Max Characters | integer | Optional cap on highlight characters per URL. Leave unset for Exa's highest-quality default. Optional |
contentsSummary Contents - Summary | boolean | Return Exa-generated summaries. Prefer Highlights unless you explicitly need Exa-side synthesis. Optional |
contentsSummaryQuery Contents - Summary Query | string | Optional instructions that guide Exa's generated summary Optional |
contentsSummarySchema Contents - Summary Schema | object | JSON schema for structured Exa summary output. See JSON Schema documentation for details. Example:
Optional |
contentsMaxAgeHours Contents - Max Age Hours | integer | Maximum acceptable age for cached content in hours. Use 0 to always live crawl, -1 for cache only, or leave unset for Exa's default behavior. Optional |
contentsLivecrawlTimeout Contents - Live Crawl Timeout | integer | Timeout in milliseconds for live crawling (default: 10000) Optional |
contentsSubpages Contents - Subpages | integer | Number of subpages to crawl per result Optional |
contentsSubpageTarget Contents - Subpage Target | string | Keyword or phrase Exa should prioritize when choosing which subpages to crawl Optional |
contentsExtrasLinks Contents - Extras Links | integer | Number of URLs to return from each webpage. Optional |
contentsExtrasImageLinks Contents - Extras Image Links | integer | Number of images to return for each result. Optional |
context Legacy Context | boolean | Hidden legacy prop preserved for saved workflows. Translates to highlights mode. Optional |
contentsContext Legacy Contents Context | boolean | Hidden legacy prop preserved for saved workflows. Translates to highlights mode. Optional |
contentsHighlightsNumSentences Legacy Contents Highlights Num Sentences | integer | Hidden legacy prop preserved for saved workflows. Enables modern highlights mode without forwarding deprecated fields. Optional |
contentsHighlightsPerUrl Legacy Contents Highlights Per URL | integer | Hidden legacy prop preserved for saved workflows. Enables modern highlights mode without forwarding deprecated fields. Optional |
contentsLivecrawl Legacy Contents Live Crawl | string | Hidden legacy prop preserved for saved workflows. Translates to modern freshness settings where possible. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- exa-find-similar-links
- Version
- 0.1.2
- App
- Exa
- Authentication
- API key
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗