Integrations
Build your own connector. It's one URL.
Anything that answers HTTP can be a Hasarak connector. The protocol is written in OpenAPI, with a small TypeScript SDK for Cloudflare Workers or Bun; both are being prepared for publishing.
Status Early: the connector protocol spec and the TypeScript SDK aren't published yet. Installing a connector by URL works today.
Custom connector (HTTP) in Hasarak
One HTTP endpoint
Hasarak POSTs actions to your URL (install, refresh, event, invoke, tool, remove) and your connector answers with JSON.
Scoped permissions
Ask for channels:read, messages:read, messages:write, pages:read, pages:write or connector:<name>. Calls outside them answer 403.
Events and callbacks
Subscribe to events like message.created or page.changed, then call the Hasarak API back with a short-lived token sent with every action.
Tools for MCP
Declare tools and they show up in the workspace's MCP server as tools.<your connector>.<tool>(input).
How a connector works
A connector is a URL. When something happens that it subscribed to, Hasarak sends a
POST with the action, the installation and an API URL plus a token that works for
five minutes. The connector does its work, calls back into the Hasarak API within its
permissions, and answers with JSON. Failed deliveries are retried with backoff, so
handlers should be safe to run twice.
Connectors post as their own member (conn-<name>), so their messages are clearly
labelled, and they can’t see DMs.
Write one in a few lines
The @hasarak/sdk package (not published yet) wraps the protocol for TypeScript. defineConnector takes a manifest and
handlers, and returns a Worker-style fetch handler that deploys to Cloudflare
Workers or runs under Bun.serve. Any other language works too: the contract is
plain OpenAPI.
The first-party Cursor, ChatGPT, PostHog, GitHub and Linear connectors are built exactly this way.
Install it by URL
In Settings › Connectors, choose to install by URL and paste your endpoint. Hasarak asks the connector for its manifest, shows the permissions it wants, and installs it. Later permission requests wait in settings until someone approves them.
For a complete walkthrough with code, with and without the SDK and compared with Slack and Discord bots, read Build a chat bot with a single HTTP endpoint.
Related
- Enable a custom connectorBuild a Hasarak connector as one HTTP endpoint with @hasarak/sdk or any language, then install it by URL in Settings › Connectors.→
- CursorEach member signs in to Cursor in the browser. Mention @ai in a message and a Cursor cloud agent answers in the thread, from that member's Cursor plan.→
- ChatGPTEach member signs in to their ChatGPT account with a short code. Mention @ai in a message and ChatGPT answers in the thread, on that member's own plan.→
- GitHubPaste a pull request link and the GitHub connector replies in the thread with its title, state and size, so nobody has to open another tab to see whether it's merged.→