MULTI-APP TOOLKIT
Build with Clockify + Discord Bot
- Multi-app
- One MCP session
- 46 actions
- 5 triggers
- Managed auth
MCP
One MCP session, both toolsets
One session gives your product or agent every Clockify and Discord Bot tool at once — connect once, list tools, and call them like any single-app session.
// 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": "clockify,discord_bot",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// One list, both toolsets: Clockify and Discord Bot tools arrive
// together, each keyed by its own app's slug.
// e.g. run Add Members To Project:
const result = await mcp.callTool({
name: "clockify-add-members-to-project",
arguments: {
workspaceId: "Workspace",
projectId: "Project",
},
})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 externalUserId = "{external_user_id}" // any stable ID for this user in your system
const [clockifyTools, discordBotTools] =
await Promise.all([
pd.components.list({ app: "clockify" }),
pd.components.list({ app: "discord_bot" }),
])
// One external user owns both connected accounts, so either app's tools
// run on their behalf with the same externalUserId.curl "https://api.pipedream.com/v1/connect/{project_id}/components?app=clockify" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}"
curl "https://api.pipedream.com/v1/connect/{project_id}/components?app=discord_bot" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}"
# Connect both accounts to the same external_user_id, then
# configure and invoke either app's tools on that user's behalf.ARCHITECTURE
One user, two connected accounts
Your user connects each account once, under whatever ID they already have in your product. The two stay independent — either can be revoked on its own — and your code reaches both through that one user.
Your product
external_user_id
{external_user_id}Pipedream Connect
Managed identity
Auth · tools · routing
Clockify
Connected account
Discord Bot
Connected account
TOOLS
Clockify tools
The Clockify tools this pairing puts in reach, each one running on your user's own connected account.
Actions top 8 of 24
-
Add Members To Project
actionAdds member(s) to a project in Clockify. See the documentationWritev0.0.5 -
Add Task To Project
actionAdds a task to an existing project in a Clockify workspace. Tasks are the units of work that time entries are logged against, so create the task before calling Log Time Entry or Start Timer with a task. Optionally assign workspace members to it. Use List Projects to find the project ID. See the documentationWritev0.0.5 -
Create Client
actionCreates a new client in a Clockify workspace. Requires a client name; address and note are optional. See the documentationWritev0.0.2 -
Create Invoice
actionCreates a new invoice for a client in a Clockify workspace. Set Import From and Import To to bill tracked time: the invoice is created and the time entries logged in that period are imported as line items. Leave both blank to create an empty invoice. The invoice is created first and the tracked time is imported in a second request, so if the import fails the invoice still exists and can be removed with Delete Invoice or retried. Chain Update Invoice afterwards to set the subject, note or status. See the documentationWritev0.0.2 -
Create Project
actionCreates a new project in a Clockify workspace. Only the name is required; link the project to a client so its time can be invoiced, and set an hourly rate to make tracked time billable at that rate. Use Add Task To Project afterwards to add the tasks that time entries are logged against. See the documentationWritev0.0.5 -
Create Tag
actionCreates a new tag in a Clockify workspace. Requires the tag name. See the documentationWritev0.0.2 -
Delete Client
actionDeletes a client from a Clockify workspace. This cannot be undone. Clockify only allows deleting archived clients, so this action archives the client first if it isn't already. Use List Clients to find the ID of the client to delete. See the documentation and the update endpoint used for the archive stepWritev0.0.2 -
Delete Invoice
actionDeletes an invoice from a Clockify workspace. This cannot be undone. Use List Invoices to find the ID of the invoice to delete. See the documentationWritev0.0.2
Triggers
No Clockify triggers are available yet.
TOOLS
Discord Bot tools
The Discord Bot tools this pairing puts in reach, each one running on your user's own connected account.
Actions top 8 of 22
-
Add Role
actionAssign a role to a user. Remember that your bot requires theMANAGE_ROLESpermission. See the docs hereWritev1.0.2 -
Change Nickname
actionModifies the nickname of the current user in a guild.Writev1.0.1 -
Create Channel Invite
actionCreate a new invite for the channel. See the docs hereWritev1.0.2 -
Create Guild Channel
actionCreate a new channel for the guild. See the docs hereWritev1.0.1 -
Delete Channel
actionDelete a Channel.Writev1.0.1 -
Delete message
actionDelete a message. See the docs hereWritev1.0.1 -
Find Channel
actionFind an existing channel by name. See the docs hereRead-onlyv1.0.1 -
Find User
actionFind an existing user by name. See the docs hereRead-onlyv1.0.1
Triggers top 4 of 5
-
New Message in Channel
triggerEmit new event for each message posted to one or more channelsv1.0.0 -
New Forum Thread Message
triggerEmit new event for each forum thread message posted. Note that your bot must have theMESSAGE_CONTENTprivilege intent to see the message content. See the documentation.v1.0.0 -
New Guild Member
triggerEmit new event for every member added to a guild. See docs herev1.0.0 -
New Tag Added to Forum Thread
triggerEmit new event when a new tag is added to a threadv1.0.0
MULTI-APP
Works with more apps
The combinations customers connect alongside these two — nothing here is limited to a pair.
REFERENCE
Toolkit details
- x-pd-app-slug
- clockify,discord_bot
- Primary app
- Clockify (clockify)
- Second app
- Discord Bot (discord_bot)
- Authentication
- API key + API key
- Available actions
- 46
- Available triggers
- 5