Skip to main content
Developer & AI DocumentationLive · server v1.0.0

Connect Your AI Assistant

Connect Claude, ChatGPT or another MCP client to your client portal. The assistant can read your projects, invoices, support tickets, site status and files. On the Pro and Ultra plans it can also open tickets or send change requests, but only after you confirm the exact preview.

Tools and Limits

Each plan sets its own limits. The server enforces the key count, the requests per minute for each key, and the monthly units for the whole account.

Basic

Free

Read only. No writes on this plan

KeysActive keys per account: up to 1
Rate30 requests per minute per key
Quota1,000 units per account per month

Read projects, invoices, support tickets, site status, project files and the monthly report.

Pro

3,000,000 Toman / mo

Reads and confirmed writes

KeysActive keys per account: up to 3
Rate60 requests per minute per key
Quota5,000 units per account per month

All the read tools, plus confirmed writes: open and reply to support tickets, send change requests and Farr messages, upload files, create and update content drafts, and accept or decline proposals. Each write is previewed first and applied only after you approve it.

Ultra

5,000,000 Toman / mo

Everything in Pro, plus bulk actions and webhooks

KeysActive keys per account: up to 10
Rate120 requests per minute per key
Quota20,000 units per account per month

Everything in Pro, plus bulk ticket actions (bulk_ticket_reply, bulk_ticket_close and bulk_actions, up to 20 tickets per call), webhooks (webhook_list, webhook_create and webhook_delete) and scheduled monthly reports (scheduled_reports and scheduled_reports_get).

Safety: No Payment or Ownership Actions

The assistant API has no tool that pays an invoice, moves money, changes account ownership, or creates or revokes keys. Invoices are read-only there. You pay in the client portal yourself.

How to Create an Assistant Key

Create a key in the client portal in three steps.

1. Sign in to the Portal

Sign in to the client portal and open Assistant access in the menu.

2. Create a Key

Click "Create a key". Enter a name of 3 to 60 characters (for example "Claude Code - laptop"), choose what the key may see, and choose how long it lasts. Creating a key asks you to sign in again.

3. Copy the Key Once

The full key is shown only once, right after it is created. The server stores only a SHA-256 hash of its secret part, so it cannot be shown again. If you lose it, revoke it and create a new one.

How to Connect Claude & ChatGPT

Connect with the MCP Streamable HTTP transport, using a bearer key, or by signing in with OAuth.

Claude Code and Other MCP Clients

In a tool that takes a server URL and headers, such as the .mcp.json file of Claude Code, add this entry and replace the placeholder with your key:

{
  "mcpServers": {
    "sajjad-portal": {
      "type": "http",
      "url": "https://sajjad.blog/api/client/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_AGENT_KEY>"
      }
    }
  }
}

ChatGPT and Other Web Assistants

Add this address as a custom connector and sign in when it asks (OAuth). No key is needed on this path. Menu names differ between assistants and may change.

MCP Server URL
https://sajjad.blog/api/client/mcp
Authorization Header (key-based clients)
Bearer <YOUR_AGENT_KEY>
Two-Step Write Architecture

What "Preview, Then Confirm" Means for Writes

A write is never applied on the first call.

When an assistant calls a write tool, the server stores the exact request and returns a preview with a one-time confirmation token that expires after 10 minutes. The change is applied only when the assistant calls the confirm tool with that token. The assistant is instructed to do this only after you agree. Each token works once, only for the key and account that created it, and only with the same arguments. Every staged write is recorded.

Step 1
1. Assistant drafts the change
Step 2
2. You review the preview and agree
Step 3
3. Server checks the token and records the result

Verified Tools Reference

The main tools the client endpoint offers, plus the confirm tool used after a preview. A tool outside your plan is refused with a plan_required message.

Tool NameAccess KindCapability Description
projects_listReadList up to 50 of your projects: code, name, status, progress and end date.
invoices_listReadList up to 25 invoices with due date, total, paid amount, balance and status. Set openOnly to see only unpaid ones. Drafts and payment links are never included.
tickets_listReadList up to 50 of your support tickets with status, priority and last response time.
ticket_getReadGet the message history of one support ticket (up to 100 messages). Internal notes are excluded.
ticket_createConfirmed WriteStage a new support ticket with low or normal priority. It is applied only after you confirm the preview.
ticket_replyConfirmed WriteStage a reply to an open ticket. Closed tickets cannot be replied to. It is applied only after you confirm the preview.
change_request_createConfirmed WriteStage a change request on one of your projects. It is applied only after you confirm the preview.
site_statusReadShow the connected site's domain status, visitors and page views (24 hours and 7 days), uptime percentage and unresolved error count. Figures come from the last telemetry sync, not a live check.
files_listReadList files in your project storage, up to 100 per page, optionally under a folder.
file_linkReadCreate a download link for one stored file. The link expires after 15 minutes.
report_monthlyReadGet a month's summary (up to 12 months back): projects, tickets opened and closed, the current website snapshot, invoices due, and a PDF link that expires after 15 minutes.

Frequently Asked Questions

Common questions about client assistants, security, and usage limits.

Can my AI assistant make payments or settle invoices automatically?

No. The assistant API has no tool that pays invoices or moves money. Invoices can be read there, and you make the payment yourself in the client portal.

What happens when I reach my monthly unit quota?

Each plan has a monthly unit budget for the whole account. A read costs 1 unit and a write preview costs 3. When the account's usage for the month reaches the plan's budget, further calls return a quota_exceeded error inside the tool result (HTTP 200, not 429) until the UTC calendar month changes.

How do I revoke an assistant key if it is compromised?

Open Assistant access in the client portal, choose Revoke key and confirm. Every later request with that key is refused immediately. Assistants connected through OAuth can be disconnected from the same page.

Do I need to run a local bridge to connect ChatGPT?

No. The endpoint is a plain HTTPS endpoint: the client sends JSON-RPC messages with POST and receives JSON back. Cloud-hosted assistants can connect to it directly, with no local software.

Ready to Put Your Assistant to Work?

Choose a plan to get started, or open your client portal and create an assistant key.