CONNECT APP
Build with nocodb
Developer Tools
- API key
MCP
Give your agent nocodb tools
Every nocodb action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's nocodb account for each tool call — you store no tokens.
// 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": "nocodb",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Add Record:
const result = await mcp.callTool({
name: "nocodb-add-record",
arguments: {
workspaceId: "Workspace ID",
projectId: "Project ID",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"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": "nocodb",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Add Record:
result = await session.call_tool("nocodb-add-record", {
"workspaceId": "Workspace ID",
"projectId": "Project ID",
})API PROXY
Call the nocodb API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the nocodb API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed nocodb endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run nocodb actions from your backend
Connect a user's nocodb account once, then run Add Record on their behalf from your own code — TypeScript, Python, or plain HTTP.
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: "nocodb-add-record",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
nocodb: { authProvisionId: "apn_xxxxxxx" },
workspaceId: "Workspace ID",
projectId: "Project ID",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="nocodb-add-record",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"nocodb": {"authProvisionId": "apn_xxxxxxx"},
"workspaceId": "Workspace ID",
"projectId": "Project ID",
},
)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": "nocodb-add-record",
"configured_props": {
"nocodb": { "authProvisionId": "apn_xxxxxxx" },
"workspaceId": "Workspace ID",
"projectId": "Project ID"
}
}'TOOLS
nocodb actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Add Record
actionThis action adds a record in a table. See the documentationWritev0.0.8 -
Delete Record
actionThis action deletes a row in a table. See the documentationWritev0.0.8 -
Get Record (from row number)
actionThis action gets a row by row Id. See the documentationRead-onlyv0.0.8 -
List Records in Table Matching Criteria
actionThis action lists all rows in a table. See the documentationRead-onlyv0.0.9 -
List Workspace ID Options
actionRetrieves available options for the Workspace ID field.Read-onlyv0.0.1 -
Update Record
actionThis action updates a record in a table. See the documentationWritev0.0.8
-
New Record in Table
triggerEmit new event for each new record in table. See the documentationv0.0.8 -
New Record in View
triggerEmit new event for each new record in a view. See the documentationv0.0.3 -
New Update in Table
triggerEmit new event for each update in table. See the documentationv0.0.8
MULTI-APP
Use nocodb with other popular apps
Most products don't stop at one integration. Pair nocodb with the other apps your users rely on, and ship use cases that span both.
- App slug
- nocodb
- Authentication
- API key
- Categories
- Developer Tools
- Actions
- 6
- Triggers
- 3
- API proxy
- Available