Deel ACTION
List Contracts
List and search all contracts in Deel across IC (independent contractor), EOR (employer of record), and GP (global payroll) types. Use this to find contract IDs, check statuses, or browse the contractor/employee roster. Supports filtering by search term, status, contract type, team, and country. Returns contract ID, title, type, status, worker name, and start date. See the documentation
- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Deel account once, then configure and run List Contracts 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: "deel-list-contracts",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
deel: { authProvisionId: "apn_xxxxxxx" },
search: "Search",
statuses: ["Statuses"],
},
})
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": "deel-list-contracts",
"configured_props": {
"deel": { "authProvisionId": "apn_xxxxxxx" },
"search": "Search",
"statuses": ["Statuses"]
}
}'// 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": "deel",
},
},
},
)
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: "deel-list-contracts",
arguments: {
search: "Search",
statuses: ["Statuses"],
},
})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 |
|---|---|---|
search Search | string | Search by contract title or worker name. Optional |
statuses Statuses | string[] | Filter by contract status. Valid values include pending, active, ended, cancelled. Optional |
types Contract Types | string[] | Filter by contract type. Valid values include fixed_rate_contract, pay_as_you_go_contract, milestone_contract, eor_employee, global_payroll_employee. Optional |
teamId Team ID | string | Filter contracts by client team ID. Optional |
countries Countries | string[] | Filter by worker country. Use ISO 3166-1 alpha-2 codes (e.g., DE, US, GB). Optional |
limit Limit | integer | Maximum number of contracts to return (default: 50). Optional |
afterCursor After Cursor | string | Cursor for pagination. Use the after_cursor value from a previous response to get the next page. 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
- deel-list-contracts
- Version
- 0.0.2
- App
- Deel
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗