ArcGIS Online ACTION
Find Intersecting Features by Search Query
Query one source feature by SQL
WHERE clause, then use that feature's geometry to find intersecting records in target layers from the same Feature Service. Returns per-layer attribute arrays. See the documentation- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's ArcGIS Online account once, then configure and run Find Intersecting Features by Search Query 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: "arcgis_online-query-intersecting-features-by-search-query",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
arcgis_online: { authProvisionId: "apn_xxxxxxx" },
featureService: "Feature Service",
sourceLayerId: "Source Layer",
},
})
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": "arcgis_online-query-intersecting-features-by-search-query",
"configured_props": {
"arcgis_online": { "authProvisionId": "apn_xxxxxxx" },
"featureService": "Feature Service",
"sourceLayerId": "Source Layer"
}
}'// 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": "arcgis_online",
},
},
},
)
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: "arcgis_online-query-intersecting-features-by-search-query",
arguments: {
featureService: "Feature Service",
sourceLayerId: "Source Layer",
},
})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 |
|---|---|---|
featureService Feature Service | string | The Feature Service to use: a 32-character portal item ID (e.g. "0123456789abcdef0123456789abcdef"), a full FeatureServer URL (e.g. "https://services.arcgis.com/.../FeatureServer/0"), or a service title that matches search results Required Dynamic |
sourceLayerId Source Layer | string | Layer id whose query where clause selects the single boundary feature Required Dynamic |
whereClause WHERE Clause | string | SQL WHERE fragment passed to the layer query API (e.g. OBJECTID = 1 or APN = '123-456'). Only the first returned feature is used Required |
targetLayerIds Target Layers | string[] | Target layer ids in the same service to intersect-query against the boundary Required Dynamic |
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
- arcgis_online-query-intersecting-features-by-search-query
- Version
- 0.1.2
- App
- ArcGIS Online
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗