Productivity & teams
Redmine
Issues, time entries and projects in your Redmine, from your agent.
12 endpoints
Search, read, create and verify posts in your Slab wiki. Use it in ChatGPT, Claude or any AI agent over MCP, or in n8n, Make and scripts over REST.
10 tools Read and write
Slab has a GraphQL API on the Business and Enterprise plans only, no REST API and no official MCP server (checked 28 Oct 2026). On those plans the API searches, reads, creates and archives posts; we found no route for verification or Post Insights. Cotlet runs 10 Slab tools hosted on any plan, over MCP for agents and REST for scripts.
| What you need | GraphQL API | GitHub server | Cotlet |
|---|---|---|---|
| Works on Free and Startup | Business and Enterprise | Needs the API token | Yes, any plan |
| Search, read, create and archive posts | Yes, on Business | Yes, on Business | Yes |
| Expired posts, verify, request verification | Not found | No | Yes, after your OK |
| Post Insights: views and readers | Not found | No | Yes, where Slab shows them to you |
| Whose access it uses | The Slab Bot user | The Slab Bot user | Yours, with your role |
| Allowed by Slab's terms | Yes, official | Yes, official API | Uses the web app |
Checked 28 Oct 2026. Sources: Slab Help: Developer Tools: API & Webhooks · Slab pricing · Slab Help: Post verification · Slab Help: Advanced searching · Pipedream: Slab actions
Use your own account in its Cotlet Cloud Browser.
Connect your agent or create a Cotlet API key.
Ask your agent or send an HTTP request.
We never keep your Slab password, and nothing your team gets notified about happens until you approve it. Who can see your session
Use MCP with your AI agent, or HTTP requests in n8n, Make, Zapier and scripts. Follow the MCP setup below or jump to the REST guide.
Sign in to Slab in a Cloud Browser. Create a Cotlet account, open Slab in its Cloud Browser, sign in to your team's Slab as you always do and press Enable for agents.
Add the Cotlet address. Put https://cotlet.dev/mcp/v1 in the MCP server or connector field of your agent.
Approve the connection. Chat apps open a Cotlet sign-in page. Code editors, n8n and scripts take an API key from the console.
The same address, https://cotlet.dev/mcp/v1, carries Slab and every other app you enable. If the Slab tools do not show after you enable it, refresh the connector in your agent.
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect
Claude Code:
claude mcp add --transport http cotlet-slab \
https://cotlet.dev/mcp/v1 \
--header "Authorization: Bearer $COTLET_API_KEY" Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth // ~/.cursor/mcp.json
{
"mcpServers": {
"cotlet-slab": {
"url": "https://cotlet.dev/mcp/v1",
"headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
}
}
} # ~/.codex/config.toml
[mcp_servers.cotlet-slab]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY" MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: slab_read Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: slab_write Create a Cotlet API key with access to Slab and its read operations. Store it as COTLET_API_KEY in your environment or automation platform's credential store.
Connect Slab in Cotlet and enable it for agents. Account access: Your own Slab account on any plan (what the agent can read and edit is what your role and topics allow).
curl https://cotlet.dev/api/v1/slab/topics \
-H "Authorization: Bearer $COTLET_API_KEY" A successful REST call puts the tool output in result. This illustrative response excerpt omits call IDs, messages and credit details.
{
"status": "success",
"app": "slab",
"tool": "list_topics",
"result": {
"topics": [
{
"topic_id": "t_support1",
"name": "Support",
"sub_topics": [
"Macros",
"Escalations"
]
},
{
"topic_id": "t_eng0042",
"name": "Engineering",
"sub_topics": [
"Runbooks"
]
},
{
"topic_id": "t_meet007",
"name": "Meetings",
"sub_topics": []
}
]
}
} Returns each topic you can open with its id, name and the sub-topics under it. Private topics appear only if you are a member.
Use the id or name as the topic parameter of other tools.
Keep the same selection when continuing a list. Compare changed record values as well as identifiers when refreshing your destination.
| Tool | Connect through | Example workflow |
|---|---|---|
| n8n | HTTP Request | Search the wiki with the same filters as Slab search. Use search_posts in your configured workspace report. |
| Make | HTTP > Make a request | Read one post as Markdown with its metadata. Use get_post in your configured workspace report. |
| Python or Node.js | REST API | Views and readers of one post over a period. Use get_post_insights in your configured workspace report. |
Send Authorization: Bearer <your Cotlet API key> in request headers. You configure the schedule, destination and record comparisons.
Cotlet reads Slab; your workflow steps write to your chosen destination. These HTTP workflows do not require a native Cotlet connector or a prebuilt template.
Python and Node.js can use the same HTTP requests without an AI agent. Keep access keys in credentials, outside shared workflow exports.
The API and MCP reference lists operations and inputs. The REST API guide explains authentication, errors and approvals.
Results stop where your role stops: private topics only if you are a member. New posts are drafts unless you say publish.
Returns matching posts with id, title, topics, owner and edited date. The filters are the ones Slab search offers. Results only include posts your role can open. next_cursor is empty on the last page.
MCP callslab_read → search_posts
REST endpointGET https://cotlet.dev/api/v1/slab/posts/search
| Name | Type | Description |
|---|---|---|
| query string required | string | Words to find; quote a phrase, put a minus before a word to exclude it |
| topic string | string | Limit to one topic by name, like the in: filter |
| state string | string | draft, published, public, verified, expired or archived, like the is: filter |
| cursor string | string | next_cursor from the previous page |
{
"query": "query"
} {
"posts": [
{
"post_id": "k3m9x2qa",
"title": "Refund policy",
"topics": [
"Support"
],
"owner": "Dana Whitfield",
"edited": "2026-09-18",
"state": "verified"
},
{
"post_id": "p7d2w5nb",
"title": "Refund exceptions for annual plans",
"topics": [
"Support",
"Billing"
],
"owner": "Leo Marsh",
"edited": "2026-06-02",
"state": "expired"
}
],
"next_cursor": ""
} Returns each topic you can open with its id, name and the sub-topics under it. Private topics appear only if you are a member. Use the id or name as the topic parameter of other tools.
MCP callslab_read → list_topics
REST endpointGET https://cotlet.dev/api/v1/slab/topics
No parameters.
{
"topics": [
{
"topic_id": "t_support1",
"name": "Support",
"sub_topics": [
"Macros",
"Escalations"
]
},
{
"topic_id": "t_eng0042",
"name": "Engineering",
"sub_topics": [
"Runbooks"
]
},
{
"topic_id": "t_meet007",
"name": "Meetings",
"sub_topics": []
}
]
} Returns the title, body as Markdown, topics, owner, contributors and edited date. When the post uses verification it also returns the verifiers, the review frequency and the expiry date. Embeds and attachments come back as links.
MCP callslab_read → get_post
REST endpointGET https://cotlet.dev/api/v1/slab/posts/{post_id}
| Name | Type | Description |
|---|---|---|
| post_id string required | string | Post id from search_posts or list_expired_posts |
{
"post_id": "post_8c41d2"
} {
"post_id": "k3m9x2qa",
"title": "Refund policy",
"body": "# Refund policy\n\nAnnual plans are refundable within 30 days of purchase...",
"topics": [
"Support"
],
"owner": "Dana Whitfield",
"contributors": [
"Leo Marsh"
],
"edited": "2026-09-18",
"verification": {
"status": "verified",
"verifiers": [
"Dana Whitfield"
],
"expires": "2027-03-18"
},
"url": "https://yourteam.slab.com/posts/refund-policy-k3m9x2qa"
} Creates the post in your account and returns its id, state and URL. A published post is visible to everyone who can open its topic, and Slab notifies people who follow the topic. Drafts reach no one. By default you confirm each call; you can switch that off for this tool.
MCP callslab_write → create_post
REST endpointPOST https://cotlet.dev/api/v1/slab/posts
| Name | Type | Description |
|---|---|---|
| title string required | string | Post title |
| body string required | string | Post body in Markdown |
| topic string | string | Topic name to add the post to |
| publish boolean | boolean | true publishes, false (default) saves a draft |
{
"title": "Weekly sync notes",
"body": "## Decisions\n- Ship the billing fix Thursday\n\n## Actions\n- Ana: update the runbook",
"topic": "Meetings",
"publish": false
} {
"post_id": "m5q1y8tc",
"title": "Weekly sync notes",
"state": "draft",
"topics": [
"Meetings"
],
"url": "https://yourteam.slab.com/posts/weekly-sync-notes-m5q1y8tc"
} Adds the topic to the post and returns the post's topics. It reaches no one and one more call removes the topic again, so it asks for no confirmation. You need edit access to the post.
MCP callslab_write → add_post_topic
REST endpointPOST https://cotlet.dev/api/v1/slab/posts/{post_id}/topic
| Name | Type | Description |
|---|---|---|
| post_id string required | string | Post id |
| topic string required | string | Topic name |
{
"post_id": "post_8c41d2",
"topic": "topic"
} {
"post_id": "m5q1y8tc",
"topics": [
"Meetings",
"Engineering"
]
} Slab lets only people with edit access verify a published post, and a verifier cannot request verification of their own post.
Returns posts in the expired state, the one Slab turns yellow in the post banner, with owner, verifiers and the date verification expired. Oldest expiry first. next_cursor is empty on the last page.
MCP callslab_read → list_expired_posts
REST endpointGET https://cotlet.dev/api/v1/slab/expired-posts
| Name | Type | Description |
|---|---|---|
| topic string | string | Limit to one topic by name |
| cursor string | string | next_cursor from the previous page |
{
"posts": [
{
"post_id": "p7d2w5nb",
"title": "Refund exceptions for annual plans",
"owner": "Leo Marsh",
"expired": "2026-08-02"
},
{
"post_id": "r2c8v1ze",
"title": "On-call handover checklist",
"owner": "Ana Ruiz",
"expired": "2026-09-11"
}
],
"next_cursor": ""
} Sets the post to verified, shows the green banner with who verified it and the expiry date, and returns both. Only published posts can be verified, and only people with edit access to the post. Verifiers are reminded when the date nears. By default you confirm each call; you can switch that off for this tool.
MCP callslab_write → verify_post
REST endpointPOST https://cotlet.dev/api/v1/slab/posts/{post_id}/verify
| Name | Type | Description |
|---|---|---|
| post_id string required | string | Post id of a published post |
| frequency string | string | How often the post must be reverified, in Slab's own options for the post |
{
"post_id": "post_8c41d2"
} {
"post_id": "p7d2w5nb",
"status": "verified",
"verified_by": "Maya Cole",
"expires": "2027-04-28"
} Sends the request through Slab and returns who was asked. The person gets a Slab notification. Only people with edit access to the post can request verification. By default you confirm each call; you can switch that off for this tool.
MCP callslab_write → request_verification
REST endpointPOST https://cotlet.dev/api/v1/slab/posts/{post_id}/verification/request
| Name | Type | Description |
|---|---|---|
| post_id string required | string | Post id of a published post |
| verifier string | string | Person to ask; the post owner by default |
{
"post_id": "post_8c41d2"
} {
"post_id": "r2c8v1ze",
"requested_from": "Ana Ruiz",
"status": "requested"
} Slab keeps usage data 30 days on Free, 90 on Startup and 365 on Business, so insights reach back that far at most.
Returns the same figures as Post Insights in the post menu: the view count for the period and the people who read it. Whether Slab shows insights to your role is Slab's rule; without access the call fails with a permission error.
MCP callslab_read → get_post_insights
REST endpointGET https://cotlet.dev/api/v1/slab/posts/{post_id}/insights
| Name | Type | Description |
|---|---|---|
| post_id string required | string | Post id |
| period_days integer | integer | How far back to count, in days |
{
"post_id": "post_8c41d2"
} {
"post_id": "p7d2w5nb",
"period_days": 90,
"views": 41,
"readers": [
"Maya Cole",
"Tom Reyes"
]
} Archives the post and returns its new state. Slab keeps archived posts, and the archived filter in search finds them again. People who linked to the post lose it from topics. By default you confirm each call; you can switch that off for this tool.
MCP callslab_write → archive_post
REST endpointPOST https://cotlet.dev/api/v1/slab/posts/{post_id}/archive
| Name | Type | Description |
|---|---|---|
| post_id string required | string | Post id |
{
"post_id": "post_8c41d2"
} {
"post_id": "r2c8v1ze",
"title": "On-call handover checklist",
"state": "archived"
} Your signed-in Slab profile, encrypted with AES-256-GCM, in Finland. No password.
The 10 Slab tools. No cookie and no Slab Bot token.
The topics and posts your Slab role opens, drafts included.
Team settings, members, billing, SSO and the Developer page.
Your agent gets a link and you sign in again. We never sign in for you.
Disable Slab for agents, reset the browser or delete the API key.
Your Slab admin can see how and when your account is used, as Slab's terms say, so agent work shows under your name. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results); no SOC 2 report or third-party pentest yet.
"Use any robot, spider or other automatic device, process or means to access the Website or any mobile application used to access the Services for any purpose, including monitoring or copying any of the material on the Website"
Section 8 lets Slab end an account "for any or no reason". The GraphQL API is the only route the terms leave clear, and only on Business and Enterprise. An agent in the web app is automation in Slab's eyes, so a team that cares should ask Slab first. We found no public case of a Slab account closed for automation (checked 28 Oct 2026).
Section 6 also bans use that could "overburden" the site. Run a big archive pass over a few days, not in one go.
When Slab moves the verification banner or renames a menu, we change the tool and your prompts keep working. status.cotlet.dev watches the site, console and API every 3 minutes.
| Action | Undo |
|---|---|
| Create a draft | Delete it; nobody saw it |
| Publish a post | Archive it; topic followers were already notified |
| Add a post to a topic | Yes, remove the topic |
| Verify a post | Change verification on the post in Slab |
| Request verification | No, the verifier is notified |
| Archive a post | Yes, the archived filter finds it again |
4 of 10 tools ask first: create_post, verify_post, request_verification and archive_post. Reads and add_post_topic run at once. Turn the wait off per tool for a scheduled run.
Verify only what you checked: the green banner tells your team the post is right, with your name on it.
{
"name": "create_post",
"arguments": {
"title": "Weekly sync notes",
"body": "## Decisions\n- Ship the billing fix Thursday\n\n## Actions\n- Ana: update the runbook",
"topic": "Meetings",
"publish": false
}
} curl -X POST https://cotlet.dev/api/v1/slab/posts \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Weekly sync notes","body":"## Decisions\n- Ship the billing fix Thursday\n\n## Actions\n- Ana: update the runbook","topic":"Meetings","publish":false}' {
"post_id": "m5q1y8tc",
"title": "Weekly sync notes",
"state": "draft",
"topics": [
"Meetings"
],
"url": "https://yourteam.slab.com/posts/weekly-sync-notes-m5q1y8tc"
} Cron jobs and scripts call the same tools over REST at /api/v1/slab, with one key and one price. A verify on a post you cannot edit fails with a permission error and costs nothing. The tools table lists the REST path of each tool.
About $27 a monthfor a Slab team of about 40 people, 4,700 credits. Slab bills your seats as before.
| Job | Calls | Credits |
|---|---|---|
| Expired posts report with views, weekly | 13 × 4 | 520 |
| Re-verify 6 reviewed posts, weekly | 13 × 4 | 520 |
| Answer 4 questions from the wiki, each workday | 2 × 88 | 1,760 |
| Meeting notes saved as drafts | 3 × 8 | 240 |
| Archive unread expired posts, monthly | 16 × 1 | 160 |
| Cloud Browser, 30 days | 1,500 | |
| Total | 4,700 |
The month is our example. Slab's average contract is about $3K a year (Getlatka, Oct 2024), some 20 to 40 seats. Moving that team from Startup to Business for the API alone would add $5.83 a seat a month. Dollars at the $29 pack rate.
| Credits | Price, one time | Calls at 10 credits | Per 1,000 credits |
|---|---|---|---|
| 5,000 | $29 | 500 | $5.80 |
| 15,000 | $79 | 1,500 | $5.27 |
| 32,000 | $149 | 3,200 | $4.66 |
| 60,000 | $249 | 6,000 | $4.15 |
Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.
| Option | What it does | Where it stops |
|---|---|---|
| russwyte/slabby | The most starred Slab MCP server (18 stars), Bun, 4 tools: get, update, search and list posts. Apache-2.0. | Slab Bot token, last commit 12 Mar 2026, nothing for verification. |
| DeNoronha/slab-knowledge-mcp | 16 tools: upsert posts from Markdown, archive, topics, users, comments. | Edits only posts it created; Slab's API cannot edit posts made in the editor. |
| mostafa/slab-cli | Rust CLI: pull the wiki as Markdown, diff and push back, comments. | A CLI on your machine, not a hosted server. |
| Pipedream | Hosted MCP on 10 GraphQL actions. | API plans only, no verification or insights. |
| Dust, Even | Slab search and reading inside their own agent apps. | Read-heavy, inside one product, on the Bot token. |
On Business or Enterprise, a GitHub server or Pipedream covers search, reading and new posts, and you look after the token. None of them sees expired posts, verifies or reads Post Insights, and none works on Free or Startup. Cotlet does that upkeep in your own login.
Take Group sp. z o.o. runs Cotlet, a software company registered in Poland, EU (VAT PL6342984273), in business since 2019 and founded by Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the Slab tools go to contact@cotlet.dev.
Create a free account at https://cotlet.dev, open Slab under Integrations in the console and sign in to Slab in its Cloud Browser. The trial starts with your first app, and no card is asked.
Sign up at cotlet.dev, log in to Slab once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your Slab account through Cotlet, in their phone apps too.
With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in Slab: weekly report of outdated wiki posts; re-verify posts you reviewed; answer questions from the wiki. You ask in plain words, and anything that reaches other people waits for your OK first.
No. Slab's own GraphQL API needs Business or Enterprise, but Cotlet works in your signed-in Slab account on any plan. What the agent can do still follows your role: only people with edit access to a post can verify or archive it (Slab Help: Post verification).
It sees what your own account sees. Private topics, a feature of Startup and higher plans, show up only if you are a member (Slab pricing). Nothing is shared with a bot user.
Only on Business and Enterprise, and they fire when a post is published. Nothing tells an agent that a verification expired, so run it on a schedule, for example a weekly list_expired_posts.
No. No tool edits the body of a post; the agent creates new posts and drafts, sets topics, verifies and archives. Rewrites stay with your team in the Slab editor.
Only the way in differs. Both carry the same 10 tools, inputs and answers, with one API key and one price. Agents use MCP; scripts and HTTP steps use REST.
No. Cotlet is independent and not affiliated with Slab Inc.
Yes. Call Cotlet's REST API from a script or an HTTP step in n8n, Make or Zapier with your Cotlet key. MCP is the alternative for AI agents; you do not need to connect an agent to use REST.
Free 7-day trial with 2,000 credits, no card needed.
May we use Google Analytics to see which pages help people? It sets cookies only if you accept. No ads, and we never sell data. Cookie policy