Connect
Connect an AI Agent to Sekura
From Claude Code, Cursor, Copilot, Codex and Muse.
Sekura works from the tool you already code in. A connected tool does what your dashboard does: finds the repositories Sekura can scan, starts a scan, follows it, reads what it found with the proof, subscribes a repository to Sekura Always, and cancels.
- Sign in with GitHub, no key to copy
- Quoted before anything is charged
- The same prices as the dashboard
Claude Code, Cursor, GitHub Copilot, OpenAI Codex and nearly forty other tools connect as an MCP server; Meta Muse through the REST API. Nothing is started or charged until you have agreed to it in the conversation.

The fastest way in
One command connects every tool on your machine.
Run it once. It finds the coding tools you have, shows you what it would write, signs you in once in your browser, connects them, and installs the skill that teaches the agent to quote before it scans. Nothing to copy, no key to paste.
npx sekura@latest init
- Detects your coding tools. It looks for the tools listed below by their configuration folders and commands. Nothing is written yet.
- Asks one question. Connect every tool it found, for every project, with the skill, and sign in? Yes, No, or Edit, which opens the list of tools, the scope (every project, or this project only), the skill and the sign-in.
- Shows the plan. Every file it would write and the exact entry, or the tool's own command, with your key shown as
Authorization: Bearer <your key, after sign-in>. Nothing happens until you answer Apply.--dry-runstops here. - Signs you in once. In your browser: sign in with GitHub on sekura.ai and approve. On a machine with no browser of its own (SSH, a devcontainer, Codespaces, or with
--device) it shows a code to enter at sekura.ai/connect/device from any other device. - Applies it, and the skill. One entry named sekura in each chosen tool, in that tool's own shape and with your key, plus the sekura skill that teaches the agent to quote before it scans. It says what each step did. A file with comments, such as Zed's settings, is never rewritten: you get the lines to add. Codex and Devin cannot take a key in their configuration, so it runs their own
mcp login, one click with your browser already signed in. - Checks the server answers. It asks the Sekura server to answer before it tells you anything works.
- Gets you to a first scan. It says what your account still needs, the Terms or a verified email, and waits while you do it in the browser. It offers to install the Sekura GitHub App and waits until the repository shows up. Then you pick a repository, the current folder's first. It starts no scan.
- Tells you what to do next. Each tool's next step (restart Cursor; start a new Claude Code session, then type
/sekura) and what to type to scan. Every scan is quoted first and starts only after you agree.
It connects Claude Code, GitHub Copilot in VS Code, OpenAI Codex, Cursor, Antigravity, Kiro, Zed, JetBrains Junie, Tabnine CLI, Devin Desktop and the Devin CLI, OpenCode, Goose, Cline and Factory Droid.
Already connected? Run it again to add a tool or refresh the skill: it changes nothing that is already right. npx sekura@latest status shows what is connected and who is signed in; npx sekura@latest login signs in again and gives the connected tools the new key; npx sekura@latest logout deletes the saved key; npx sekura@latest uninstall removes the entries, the skill, the guidance block and the saved key, and nothing else; npx sekura@latest billing lists your saved cards, masked, and --open opens the payment methods page.
Options. --yes, --dry-run, --scope project, --tools claude,cursor, --no-skill, --no-login, --device. For an unattended install, with a key from Settings → Agents and API keys: SEKURA_API_KEY=sek_live_… npx sekura@latest init --yes.
No terminal? One click, or one line.
Install in VS CodeAdd to CursorAdd to ReplitAdd to KiroAdd to Goose
Claude Code, in one line, without the installer
claude mcp add --transport http sekura https://sekura.ai/mcp
Then type /mcp, choose sekura and sign in with GitHub. Ask it which of your repositories Sekura can scan, and for a quote to scan one.
By hand: what the installer cannot reach
claude.ai and Claude Desktop, Copilot’s CLI and cloud agent, the app builders, Meta Muse and the long tail each take the address in their own settings. The first time a tool uses Sekura, a sekura.ai page opens in your browser: sign in with GitHub and approve.
claude.ai and Claude Desktop
npx sekura@latest init connects Claude Code; this is the part it cannot reach.
- claude.ai and Claude Desktop: Customize → Connectors → + Add → Add custom connector (Team and Enterprise owners: Organization settings → Connectors → Add → Custom → Web). Name it Sekura and give the URL
https://sekura.ai/mcp.
The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
GitHub Copilot CLI and the Copilot coding agent
npx sekura@latest init connects GitHub Copilot in VS Code; this is the part it cannot reach.
- Copilot CLI: run the command below.
- Copilot cloud agent (the coding agent): in the repository, Settings → Copilot → MCP servers, paste the JSON below. Create a key in Sekura (Settings → Agents and API keys) and store it under Settings → Secrets and variables → Agents as a secret named
COPILOT_MCP_SEKURA_KEY. Never paste the key itself into the configuration.
copilot mcp add --transport http sekura https://sekura.ai/mcp{
"mcpServers": {
"sekura": {
"type": "http",
"url": "https://sekura.ai/mcp",
"tools": [
"*"
],
"headers": {
"Authorization": "Bearer $COPILOT_MCP_SEKURA_KEY"
}
}
}
}In VS Code, the other IDEs and the CLI: The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy. The coding agent and code review cannot sign in, so they use a key. An agent that runs unattended should have a key with Read only: it can then report on scans but never start or cancel one. Code review runs only the tools that read.
Replit
Add to Replit- Use the button, signed in to Replit.
- Or go to replit.com/integrations → Add MCP server, give the URL
https://sekura.ai/mcp, then Test & save.
Test & save runs the sign-in. The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
Lovable
- Connectors → + → MCP server. Name it Sekura, give the URL
https://sekura.ai/mcp, choose OAuth, then Add & authorize.
The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
Bolt
- In a chat, + → Connectors → Manage connectors → Custom MCP server. Name it Sekura, give the URL
https://sekura.ai/mcp, transport HTTP and authentication MCP OAuth. Bolt checks the connection when you save.
The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
v0
- In the prompt box, + → MCPs → add a custom server with the URL
https://sekura.ai/mcpand OAuth. - Whether v0 asks before each call follows the chat’s permission mode (Ask, Auto or Full) and your Agent Permissions rules; a custom server is either enabled or disabled. v0 can use Sekura only while it is generating.
The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
JetBrains AI Assistant
npx sekura@latest init connects JetBrains Junie; this is the part it cannot reach.
- AI Assistant: Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add, and paste the JSON below.
{
"mcpServers": {
"sekura": {
"url": "https://sekura.ai/mcp"
}
}
}Junie: The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy. JetBrains does not yet document a sign-in or a way to send a key for AI Assistant’s remote servers, so if AI Assistant cannot connect, use Junie or GitHub Copilot’s JetBrains plugin.
Tabnine in the IDE
npx sekura@latest init connects Tabnine CLI; this is the part it cannot reach.
- Tabnine in the IDE: add the server to
.tabnine/mcp_servers.json, with a key inrequestInit.headers.
{
"mcpServers": {
"sekura": {
"url": "https://sekura.ai/mcp",
"requestInit": {
"headers": {
"Authorization": "Bearer sek_live_…"
}
}
}
}
}The CLI signs in through /mcp auth; the IDE can sign in through OAuth too, or use a key from Settings → Agents and API keys. Keep that file out of version control.
Devin
npx sekura@latest init connects Devin Desktop and the Devin CLI; this is the part it cannot reach.
- Devin: Customize → MCPs → Add custom MCP, with the URL
https://sekura.ai/mcpand transport HTTP, then Test tools and Connect. Adding a server needs the Manage MCP Servers permission in your organisation.
The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
Meta Muse
Connect my Sekura account.- Muse opens a Sekura link. Sign in with GitHub, as the GitHub account whose repositories you want scanned.
- If the Sekura GitHub App is not yet installed on those repositories, GitHub’s install page comes next. Choose the repositories Sekura may read, public or private.
- Approve. The page names Muse, the Sekura account being connected, and what Muse will be able to do: read, or read and act.
- Go back to Muse. It is connected; there is no key to copy or paste.
The link works for 10 minutes; if it runs out, ask Muse to connect again. The connection appears in Settings → Agents and API keys, where you can revoke it at any time; Muse is refused from its next request. Muse talks to the REST API, not the MCP server.
More tools
These connect to the same address in the same way, each through its own configuration file or settings screen. The tools above are the ones most readers use.
JetBrains AI AssistantTabnine in the IDEDevinPiKilo CodeOpenHandsWarpAmpQwen CodeKimi Code CLIMistral VibeAugment CodeTraeGemini in Android StudioGemini appPerplexity and CometNotion Agentn8nZapierMakeDifyBase44In your own agent (Vercel AI SDK, OpenAI Agents SDK, LangChain, CrewAI, Google ADK, Microsoft Agent Framework)
Without MCP: Aider and Jules. Retired: Amazon Q Developer and Gemini Code Assist.
Pi
- Run the command below, then
/mcp login sekurain a Pi session, orpi mcp login sekurafrom the shell.
pi mcp add sekura --url https://sekura.ai/mcpPi registers itself with Sekura and opens the sign-in. The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
Kilo Code
- Add the server to
kilo.jsoncin the project, or to~/.config/kilo/kilo.jsoncfor every project. The Kilo CLI reads the same key fromkilo.jsontoo. - Or, in the VS Code extension, Settings → Agent Behaviour → MCP Servers.
{
"mcp": {
"sekura": {
"type": "remote",
"url": "https://sekura.ai/mcp"
}
}
}Kilo Code starts the sign-in when it connects. The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
OpenHands
- OpenHands CLI: run the command below.
- Agent Canvas, local or on OpenHands Cloud: Customize → MCP Servers → Add custom server. Server Type SHTTP, the URL
https://sekura.ai/mcp, Authentication OAuth, then Test connection and save. A server added here reaches new conversations, not ones already running.
openhands mcp add sekura --transport http --auth oauth https://sekura.ai/mcpThe first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
Warp
- Settings → Agents → MCP servers → + Add, and paste the JSON below.
{
"sekura": {
"url": "https://sekura.ai/mcp"
}
}Warp opens a sekura.ai page in your browser when you save: sign in with GitHub and approve the connection. There is nothing to copy.
Amp
- Run the command below, then start Amp.
amp mcp add sekura https://sekura.ai/mcpThe next time Amp starts, it opens a sekura.ai page in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
Qwen Code
- Run the command below, then open
/mcpin Qwen Code and sign in tosekura.
qwen mcp add --transport http sekura https://sekura.ai/mcpQwen Code registers itself with Sekura. The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy. The sign-in returns to localhost, so use a browser on the machine running Qwen Code. Qwen Code stores the sign-in unencrypted under ~/.qwen unless QWEN_CODE_FORCE_ENCRYPTED_FILE_STORAGE=true is set; set it on a shared machine.
Kimi Code CLI
- Add the server to
~/.kimi-code/mcp.jsonfor every project, or.kimi-code/mcp.jsonfor one, then run/mcp-config login sekura.
{
"mcpServers": {
"sekura": {
"url": "https://sekura.ai/mcp"
}
}
}/mcp-config login opens the sign-in. The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
Mistral Vibe
- Run the first command below; Vibe opens the sign-in at once.
- To use a key instead, create one in Sekura under Settings → Agents and API keys, put it in the environment variable
SEKURA_API_KEY, and run the second command. Vibe saves the variable’s name, never the key, so the key stays out of every file.
vibe mcp add sekura --url https://sekura.ai/mcpvibe mcp add sekura --url https://sekura.ai/mcp --transport streamable-http --api-key-env SEKURA_API_KEYThe first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy.
Augment Code
- Auggie CLI: run the command below, with your key in place of the placeholder.
auggie mcp add sekura --transport http --url https://sekura.ai/mcp --header "Authorization:Bearer sek_live_…"Augment documents a sign-in only for the servers in its own Easy MCP list, so a server you add needs a key: create one in Settings → Agents and API keys.
Trae
- Settings → MCP → Add → Create Manually, and paste the JSON below with your key in place of the placeholder.
- For one project, put the same JSON in
.trae/mcp.jsonat the project root instead, and keep that file out of version control: it carries the key.
{
"mcpServers": {
"sekura": {
"url": "https://sekura.ai/mcp",
"headers": {
"Authorization": "Bearer sek_live_…"
}
}
}
}Trae documents no sign-in for a server added by hand, so it needs a key: create one in Settings → Agents and API keys.
Gemini in Android Studio
- File → Settings (Android Studio → Settings on macOS) → Tools → AI → MCP Servers. Select Enable MCP Servers and paste the JSON below.
- Android Studio reads
httpUrlfor this kind of server. Withurlit tries the older SSE transport, which Sekura does not serve, and never connects.
{
"mcpServers": {
"sekura": {
"httpUrl": "https://sekura.ai/mcp"
}
}
}{
"mcpServers": {
"sekura": {
"httpUrl": "https://sekura.ai/mcp",
"headers": {
"Authorization": "Bearer sek_live_…"
}
}
}
}When Android Studio reports an authorization error for Sekura, click Start Login: a sekura.ai page opens in your browser; sign in with GitHub and approve the connection. Android Studio cannot complete the sign-in with every server; if it fails with Sekura, use the second JSON with a key from Settings → Agents and API keys.
Gemini app
- On gemini.google.com: Settings → Connected Apps → Custom apps → Add a custom app. Give the URL
https://sekura.ai/mcp, then Next. - Custom apps are added on the web and then work in the Gemini mobile app too. Google offers them to personal accounts of people 18 or over in the US, in English, with Keep Activity on; work and school accounts do not have them yet.
- Type @ and choose Sekura when you want Gemini to use it.
Gemini registers itself with Sekura, then a sekura.ai page opens: sign in with GitHub and approve the connection. There is nothing to copy.
Perplexity and Comet
- Account settings → Connectors → + Custom connector → Remote. Name it Sekura, give the MCP Server URL
https://sekura.ai/mcp, Authentication OAuth and Transport Streamable HTTP, tick the acknowledgement, then Add. - Click the Sekura card under Connectors to sign in and turn it on. In an Enterprise organisation the + Custom connector button appears only once an admin has enabled custom connectors.
Clicking the card opens a sekura.ai page: sign in with GitHub and approve the connection. There is nothing to copy.
Notion Agent
- Settings → Connections → Discover → Add Custom MCP, with the URL
https://sekura.ai/mcp. Notion Agent needs a Business or Enterprise plan, on the web or the desktop app. - If Add Custom MCP is not there, ask a workspace admin: Notion shows it only when the workspace allows custom servers, and its help says only to admins.
The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy. The connection is yours alone: Notion Agent acts as the Sekura account that signed in, and a teammate who wants Sekura connects their own.
n8n
- Give an AI Agent node an MCP Client Tool. Endpoint
https://sekura.ai/mcp, Server Transport HTTP Streamable, and Authentication MCP OAuth2 with Use Dynamic Client Registration on, or Bearer Auth with a key.
MCP OAuth2 signs in once, when you save the credential: a sekura.ai page opens; sign in with GitHub and approve. An automation runs with nobody there to read a quote and agree to it, so unless starting scans is its job, connect it with a key with Read only from Settings → Agents and API keys: it can then report on scans but never start, subscribe or cancel one.
Zapier
- Apps → + Add connection → MCP Client → Add connection. Server URL
https://sekura.ai/mcp, Transport Streamable HTTP, and OAuth Yes; or OAuth No with a key in Bearer Token. Then Yes, Continue to MCP Client. - Rename the connection Sekura afterwards, so it is recognisable beside other servers. Zapier’s MCP Client is in beta.
With OAuth, a sekura.ai page opens after you continue: sign in with GitHub and approve. An automation runs with nobody there to read a quote and agree to it, so unless starting scans is its job, connect it with a key with Read only from Settings → Agents and API keys: it can then report on scans but never start, subscribe or cancel one.
Make
- Add the MCP Client module to a scenario → Create a connection → MCP Server: + New MCP Server. Give the URL
https://sekura.ai/mcp, then Save; or put a key in API Key / Access token before saving.
Without a key, Save opens a sekura.ai page: sign in with GitHub and approve. An automation runs with nobody there to read a quote and agree to it, so unless starting scans is its job, connect it with a key with Read only from Settings → Agents and API keys: it can then report on scans but never start, subscribe or cancel one.
Dify
- Integrations → Tools → MCP, and add a server with the URL
https://sekura.ai/mcp, the name Sekura and the identifiersekura. Leave Dynamic Client Registration on. - Apps refer to the server by that identifier; changing it later stops the Sekura tools in every app that used it.
- To use a key instead, add the header
Authorization: Bearer sek_live_…under Custom Headers.
Without a key, Dify opens a sekura.ai page when it connects: sign in with GitHub and approve. An automation runs with nobody there to read a quote and agree to it, so unless starting scans is its job, connect it with a key with Read only from Settings → Agents and API keys: it can then report on scans but never start, subscribe or cancel one.
Base44
- For the AI chat while you build: Account preferences → Builder → MCP Connections → Add custom MCP. Name it Sekura, give the URL
https://sekura.ai/mcp, Authentication OAuth, then Test & add and authorize. Base44 needs the Builder plan or higher for this. - For your apps to call Sekura: Settings → Build tools → Custom integrations → Add integration → From URL, with
https://sekura.ai/api/muse/v1/openapi.json. This imports Sekura’s REST API, not its MCP server, and is the one place on this page that does. Choose the operations that read, and under Custom Headers addAuthorizationwith the valueBearerfollowed by a key with Read only.
The chat signs in: The first time a Sekura tool is used, a sekura.ai page opens in your browser: sign in with GitHub and approve the connection. There is nothing to copy. A custom integration is shared by every app in the workspace and used by whoever uses those apps, so its key must be Read only: one that can act would let them start a scan authorized in your name.
In your own agent (Vercel AI SDK, OpenAI Agents SDK, LangChain, CrewAI, Google ADK, Microsoft Agent Framework)
- Each of these takes the URL in code. Where the SDK has an OAuth provider, as the two below do in
authProvider, use it and the person signs in. Otherwise send a key in theAuthorizationheader, read from the environment rather than written into the code.
import { createMCPClient } from '@ai-sdk/mcp'
const sekura = await createMCPClient({
transport: {
type: 'http',
url: 'https://sekura.ai/mcp',
authProvider: yourOAuthClientProvider,
// with a key instead: headers: { Authorization: 'Bearer ' + process.env.SEKURA_API_KEY },
},
})
const tools = await sekura.tools()import { Agent, MCPServerStreamableHttp } from '@openai/agents'
const sekura = new MCPServerStreamableHttp({
url: 'https://sekura.ai/mcp',
name: 'Sekura',
authProvider: yourOAuthClientProvider,
})
await sekura.connect()
const agent = new Agent({ name: 'Assistant', mcpServers: [sekura] })With an OAuth provider, a sekura.ai page opens the first time: sign in with GitHub and approve. With a key, create it in Settings → Agents and API keys, and give an agent that runs without a person a key with Read only.
Every tool connects to one address, https://sekura.ai/mcp, and does what Muse does through the same functions your dashboard uses: it reads your repositories, plans and scans, and it starts, subscribes, reschedules and cancels only after you have agreed (how). A tool that cannot sign in uses a key from Settings → Agents and API keys, shown once; give an agent that runs without you a key with Read only.
What the connector does
It reads what your Sekura dashboard shows you:
- your account, and what it still needs before a scan can run, such as the Terms or the Sekura GitHub App;
- the repositories you granted the Sekura GitHub App, which are the ones Sekura can scan;
- each repository’s plan, Sekura Once or Sekura Always, with its schedule and last scan;
- your scans, their status, a summary of what each found, and the link to its full report;
- your billing: the card on file by brand and last four digits, your Always subscription, and this month’s charges.
It acts, each time only after you have agreed (how):
- start a Sekura Once scan, or scan again a repository already on your dashboard;
- subscribe a repository to Sekura Always on the schedule you choose, or move one from Once to Always;
- change when an Always repository is scanned;
- cancel Sekura Always on a repository, from the end of the period already paid for;
- cancel a scan in its first five minutes, as Cancel on the dashboard does.
Each of these uses the same functions your dashboard uses, so a tool cannot see or do anything the dashboard would not let you. It cannot see anything you have not granted (repositories without the Sekura GitHub App, other people’s scans, card numbers or API keys), and it cannot grant a repository: that is GitHub’s install screen, which the tool links you to.
What you need
- A Sekura account. Signing in with GitHub creates one; accept the Terms when Sekura asks. GitHub supplies the verified email address reports are sent to.
- The Sekura GitHub App installed on the repositories you want scanned. Each must not be empty.
- For Muse, a Meta Muse account; for a coding tool, the tool itself, connected as its panel above shows.
- For a scan or Sekura Always, one way to pay: a card already saved on your Sekura account, or, without one, a Stripe Checkout link the tool gives you. In Meta Muse only, you can also approve the amount in the chat and Link pays it; no coding tool asks for that. Every scan through a connected tool is quoted at the dashboard’s price before anything is charged.
How paid actions work
Everything a tool does on your behalf that charges, authorizes or stops something takes two calls, so that you see what will happen before it happens.
- You ask for a scan of a repository. The tool asks Sekura for a quote, and Sekura answers with the price, how it would be paid, and the authorization text you are agreeing to. Nothing has happened yet.
- The tool shows you the price and the text and asks you to agree. In Meta Muse, if you pay through Link, this is where you approve the amount.
- The tool confirms, repeating the price and the text’s version. If either changed since the quote, Sekura refuses, charges nothing, and the tool shows you the new quote.
A Link payment, in Muse, is for the amount you approved and no more. Your saved card is charged only when the confirmation says to charge it, after the quote named it by brand and last four digits. With neither, you get a Stripe Checkout link: the scan or subscription starts when Stripe confirms your payment, and if you close the page without paying, nothing starts.
Sekura Always works the same way: the quote shows the monthly price, any free trial and the schedule before anything is subscribed. Changing a schedule charges nothing and takes one call. Cancelling always asks first. A scan can be cancelled in its first five minutes: one still waiting stops at once, one a scanner has picked up is asked to stop and may finish, and after five minutes it runs to the end. Always keeps its scheduled scans until the end of the period you have already paid for, then stops. Neither deletes your scan history or your authorizations.
The authorization is recorded in your name, as the name or email on your Sekura account; the tool cannot supply a different one. The record also names the connection the tool used, and it is listed with every other authorization you have given under Authorizations.
Limits
- 120 requests a minute per connection.
- 10 confirmed actions an hour per account: starting a scan, subscribing, changing a schedule or cancelling. Asking for a quote or a preview does not count.
- 30 connection attempts an hour from one network address; a connect link works for 10 minutes.
- Over a limit, the answer is
429 Too Many Requestswith aRetry-Afterheader giving the seconds to wait. - A request body over 64 KB is refused with
413. - One scan runs at a time per account; the others wait their turn.
Data handling
The API answers a tool with what your Sekura dashboard shows you, for your account and the repositories you granted the Sekura GitHub App only: your name and email, what your account still needs before a scan can run, your repositories and plans, your scans’ status and metadata, a summary of each scan’s findings (severity, title, file and a one-line description), a link to the full report, and the brand and last four digits of a saved card. The full report stays on sekura.ai behind your sign-in.
Card details never pass through Sekura, Muse or your tool. When Link pays, Stripe holds the card and Muse hands Sekura a payment token limited to the amount you approved; a saved card and a Checkout payment stay with Stripe as they do on the dashboard.
What Muse does with those answers is governed by Meta’s terms, and what a coding tool does with them by its vendor’s. What Sekura does with your data is in the privacy policy and the terms of service; a scan a tool starts is authorized and recorded on the same terms as one you start on sekura.ai.
For developers: the REST API
- Base URL:
https://sekura.ai/api/muse/v1. JSON in and out. - OpenAPI 3.1:
https://sekura.ai/api/muse/v1/openapi.json, readable without a key. It is the reference for every schema. - Authentication:
Authorization: Bearer sek_live_…on every call except connecting and the OpenAPI document. - Errors:
{ code, error, link }— a code to branch on, one sentence for the person, and a link to where they take the next step. 401no key, or a revoked one;403a scope is missing, and the error names it;402payment is needed, andlinkis a Stripe Checkout page;409the amount or the authorization text changed since the quote, and the body carries the new quote;429withRetry-After.
Scopes
| Scope | What it permits |
|---|---|
read | reading your account, the repositories you granted the Sekura GitHub App, your plans, your scans, their findings and report links, and your billing summary. |
write | asking for a price and then starting a Sekura Once scan, subscribing a repository to Sekura Always, changing its schedule, cancelling Always and cancelling a scan. Every one of them first shows you what it will do and what it costs, and is paid only in the way you agreed to: approved in the Muse chat, your saved card, or a Stripe Checkout page. |
Connecting
The device-authorization pattern: no redirect URL, and the person never handles the key. Show the person the link; poll with the code, no faster than interval. Polling answers authorization_pending, slow_down, access_denied or expired_token until the person approves, then the key exactly once.
POST https://sekura.ai/api/muse/v1/connect
→ { "code": "…", "verificationUrl": "https://sekura.ai/…", "expiresIn": …, "interval": … }
POST https://sekura.ai/api/muse/v1/connect/token (with the code, every interval seconds)
→ { "code": "authorization_pending", … } the person is still on the page
→ { "apiKey": "sek_live_…", "scopes": ["read", "write"] } onceQuote, then confirm
Every call that charges, authorizes or stops something has a GET quote or preview that changes nothing, and a POST that repeats what the quote said. Show the person the quote before you confirm it.
GET https://sekura.ai/api/muse/v1/scans/quote?repository=your-org/your-repo
→ the amount, how it would be paid, the authorization text and its version
POST https://sekura.ai/api/muse/v1/scans
{ "repository": "your-org/your-repo",
"disclosureVersion": "…", repeated from the quote
"amountCents": …, repeated from the quote
"payment": { "sharedPaymentToken": "spt_…" } }
or "payment": { "savedCard": true }
or no payment: 402 with a Stripe Checkout linkOperations
| Call | Scope | What it does |
|---|---|---|
POST /connect | none | Starts connecting: answers a code for the agent to poll with and a link for the person to open. |
POST /connect/token | none | Polls with the code until the person has approved, then answers the API key, once. |
GET /account | read | Name and email, whether the Terms are accepted, the GitHub App’s installations, a billing summary without card details. |
GET /repositories | read | The repositories granted to the Sekura GitHub App, per installation, marked private or empty. |
GET /plans | read | Each repository’s plan, Sekura Once or Sekura Always, with its schedule and last scan. |
GET /scans | read | Your scans, newest first, 1 to 20 at a time. |
GET /scans/{id} | read | One scan: status, phase, findings by severity, where the report was sent. |
GET /scans/{id}/findings | read | Counts by severity and the most severe findings, each with title, file and one line. |
GET /scans/{id}/report-link | read | The link to the full report on sekura.ai, while the report is kept. |
GET /billing | read | The card on file by brand and last four, the Always subscription, charges this month. |
GET /scans/quote?repository= | write | The price of a Sekura Once scan, how it would be paid, and the authorization text with its version. Changes nothing. |
POST /scans | write | Starts the scan the quote described, repeating its amount and version. |
POST /scans/run-now | write | Brings forward the next scheduled scan of a repository on Sekura Always; the schedule continues from the slot after it. Charges nothing and records no new authorization. |
GET /always/quote?repository=&schedule=&tier= | write | For the plan chosen (always, plus or pro; always if none is given): the monthly price, any free trial, the schedule in words, how it would be paid, and the authorization text. Changes nothing. |
POST /always | write | Subscribes the repository on the plan the quote described, or moves it from Once to Always. |
PATCH /plans/{id}/schedule | write | Changes when an Always repository is scanned. Charges nothing; one call. |
GET /plans/{id}/cancel-preview | write | Names the repository and the date its scans would stop. Changes nothing. |
POST /plans/{id}/cancel | write | Cancels Sekura Always at the end of the period already paid for. |
GET /scans/{id}/cancel-preview | write | Whether the scan can still be cancelled, and whether cancelling is certain. Changes nothing. |
POST /scans/{id}/cancel | write | Cancels the scan in its first five minutes. |
GET /openapi.json | none | The OpenAPI 3.1 document for every operation above. |
Aider and Jules
Neither can connect to an MCP server, so neither gets a Sekura connector.
- Aider has no MCP support. Copy the findings you want fixed from the report on sekura.ai into a file and give it to Aider with
aider --read findings.md. Each finding names its file, which is what Aider needs to find the code. - Jules connects only to servers Google has chosen. A section like the one below in the repository’s
AGENTS.mdtells Jules how to treat a task that names a Sekura finding. Never put a Sekura key inAGENTS.md: it is committed with the repository.
## Security findings
Sekura scans this repository. When a task names a Sekura finding, the
finding's file and line are in the task; fix it there and keep the fix to
that finding. Sekura's API is documented at https://sekura.ai/connect/#developers.Amazon Q Developer and Gemini Code Assist
- Amazon Q Developer takes no new sign-ups, and its support ends on 30 April 2027. Kiro, its successor, copies Q Developer’s MCP configuration when you move, so follow Kiro.
- Gemini Code Assist and Gemini CLI have been replaced by Antigravity; follow Antigravity. Where Gemini Code Assist Standard or Enterprise is still in use, its agent mode reads
~/.gemini/settings.json. It cannot sign in, so it needs a key, and it readshttpUrlwhere Antigravity readsserverUrl.
{
"mcpServers": {
"sekura": {
"httpUrl": "https://sekura.ai/mcp",
"headers": {
"Authorization": "Bearer sek_live_…"
}
}
}
}Example prompts
- Which of my repositories can Sekura scan?
- Run a Sekura scan on your-org/your-repo.
- Is my Sekura scan of your-org/your-repo finished yet?
- What did my last Sekura scan find? Summarise the critical and high findings.
- Give me the link to the full report for that scan.
- Subscribe acme/shop to Sekura Always every Monday at 02:00.
- Cancel the scan that just started.
- Move my Always scan of acme/shop to Fridays.
Help
- Write to support@sekura.ai with the time and what you asked the tool. Never send an API key.
- The support icon on any sekura.ai page opens an agent that can read your account’s situation and help you get unstuck.
- If you think a connection or a key has leaked, remove it in Settings → Agents and API keys first, then write to us.