Product Knowledge Base
Everything you need to get the most out of Talon, the Lorikeet Security platform — from kicking off your first pentest to running autonomous AI pentests across your in-scope assets.
Getting Access
Talon is the Lorikeet Security platform. Engagements, findings, reports, assets, compliance, and the Lory AI Pentester all live in it, under a single account.
- Sign up at /talon/signup
Use a corporate email. Free providers (Gmail, Yahoo, etc.) are not accepted.
- Verify your email
Check your inbox for the verification link. Expires in 24 hours.
- Log in to Talon
One login covers everything — human-led engagements and the Lory AI Pentester are both inside Talon.
- Start testing
Book a human-led pentest, or load Lory credits and run an AI engagement — there's no subscription to pick. Demo accounts can be activated instantly with a code from the pricing page.
What’s Inside Talon
Human-Led Engagements
Track active engagements, view findings in real time, manage assets, collaborate with your team, and download deliverables.
Lory AI Pentester
Run autonomous, AI-driven penetration tests across your in-scope assets from inside Talon. Lory reasons, exploits, and validates findings the way a human tester would, with AI-enriched context, running 24/7.
| Pentest Engagements | Lory AI Pentester | |
|---|---|---|
| Purpose | Managed pentest engagements | Autonomous AI pentesting of in-scope assets |
| Testing | Human-led, expert pentests | Autonomous, AI-driven pentesting |
| Findings | Curated by pentest team | AI-enriched + KB-linked |
| URL | /talon/dashboard/ | /talon/dashboard/ai-pentester |
| Integrations | MCP, Microsoft Teams, Discord, Webhooks, Jira, GitHub, GitLab, Azure DevOps | MCP, Webhooks, Microsoft Teams |
Talon Overview
Your command center for all active and historical pentest engagements.
Talon gives your team full visibility into every pentest Lorikeet Security runs. Track project status, review findings in real time, mark remediations, communicate with the team, and download final reports without waiting for email updates.
Project Tracking
See exactly where each engagement is in the workflow from scoping to remediation.
Live Findings
Findings appear in Talon as they are confirmed during the engagement.
Team Collaboration
Invite developers, security leads, and managers to your workspace.
Reports
Download final PDF reports, evidence packages, and compliance letters.
Projects
A Project represents a single scoped pentest engagement with a type, timeline, assets, and findings attached.
Project Lifecycle
- Contracting
Scope agreed, SOW being finalized.
- Actively Pentesting
The Lorikeet Security team is live in your environment.
- Remediation
Findings delivered; your team is fixing vulnerabilities.
- Retest
The team verifies your fixes.
- Completed
Final report issued. Project archived.
Project Types
| Type | Description |
|---|---|
webapp | Web application penetration test |
api | REST / GraphQL / SOAP API security assessment |
mobile | iOS or Android mobile app pentest |
cloud | AWS, Azure, or GCP configuration review |
activedirectory | Active Directory / Entra ID assessment |
redteam | Full red team simulation |
soc2 | SOC 2 readiness penetration test |
pcidss | PCI DSS scoped assessment |
thickclient | Desktop / thick client application |
iot | IoT / embedded device testing |
hardware | Hardware and firmware security |
physical | Physical security assessment |
Assets
Assets define the scope of your engagement what the pentest team is authorized to test.
Testing Types
| Type | What the Tester Knows | Best For |
|---|---|---|
| Black-box | Nothing acts as an external attacker | External threat simulation |
| Grey-box | Some credentials, docs, or architecture diagrams | Most engagements balanced depth + realism |
| White-box | Full source code, credentials, infra access | Deep code-level review |
Findings
Severity Levels
| Severity | CVSS | What It Means | Typical SLA |
|---|---|---|---|
| Critical | 9.0–10.0 | Immediate exploitation risk. Full compromise likely. | 48 hours |
| High | 7.0–8.9 | High impact. May require chaining but very realistic. | 7 days |
| Medium | 4.0–6.9 | Requires prerequisites but is a material risk. | 30 days |
| Low | 0.1–3.9 | Minimal direct impact. Defense-in-depth value. | 90 days |
| Info | 0.0 | Informational observations. | No SLA |
Finding Statuses
- Open Confirmed, not yet remediated
- Ready for Retest Fixed by your team; awaiting verification
- Remediated Fix verified by Lorikeet Security
- Accepted Risk Formally accepted by your organization
- False Positive Removed after further analysis
To request retest: click Mark Ready for Retest on the finding detail page. The Lorikeet Security team verifies and updates the status within the agreed retest window.
Reports & Deliverables
- Executive Summary Business-level risk overview for leadership and board communication
- Technical Report Full findings with reproduction steps, evidence, and remediation
- Evidence Package Raw HTTP requests/responses, screenshots, and PoC files
- Retest Attestation Issued after Critical and High findings are verified remediated
- Compliance Letter Where applicable (SOC 2, PCI DSS, ISO 27001)
Team Management
- Settings → Organization
Only the account owner or admins can invite members.
- Enter the team member's email
Must match your company domain.
- They receive an invite email
Invites expire after 72 hours. You can resend from the pending list.
- Member accepts and sets a password
Automatically added to your company workspace.
Billing
Lorikeet Security uses Stripe for payments, managed from Settings → Billing.
- All major credit cards accepted
- Invoice-based billing for enterprise accounts
- Invoices sent to your registered email automatically
- Receipts and history downloadable from the billing portal
Full Engagement Workflow
- Sign up and create a project
Select your project type and add assets.
- Scope call with the team
A Lorikeet Security engineer confirms the testing approach. Project moves to Contracting.
- SOW signed, engagement scheduled
You receive a start date and a dedicated point of contact.
- Active testing
Findings appear live in Talon as they are confirmed.
- Findings delivered
Project moves to Remediation. Mark fixed items as ready for retest.
- Retest
The Lorikeet Security team verifies all critical/high findings.
- Final report
Full PDF report available in Talon. Attestation letter issued.
Lory AI Pentester Overview
Autonomous, AI-driven penetration testing across your in-scope assets.
The Lory AI Pentester runs autonomous, AI-driven penetration tests against your declared in-scope assets, chaining reconnaissance and exploitation to surface real, validated vulnerabilities before an attacker does.
Autonomous Exploitation
Lory reasons about each in-scope target and attempts real exploitation, chaining findings the way a human pentester would.
Deep Testing
Each in-scope asset is tested for access-control flaws, injection, authentication weaknesses, business logic abuse, and more.
AI Enrichment
Findings are enriched with AI-generated context, attack scenarios, and remediation from a curated KB.
Visual Evidence
Each tested web asset is automatically screenshotted so you can see the proof behind every finding.
Assets, Scope & Engagement Types
Lory tests only the assets you declare and that fall inside your scope rules. Add assets in Talon under Assets, then start an engagement from Lory AI Pentester.
- Add an asset
A web app, API, network host or range, cloud account, iOS or Android app, or code repository. Set it in scope under your scope rules.
- Pick an engagement type & depth
Choose Surface, Standard, or Deep. Lory queues the run; you're notified when findings are ready.
- Every finding is human-reviewed
Findings are held as pending review until a Lorikeet Security pentester approves them before you see them.
What Lory runs autonomously
| Engagement | Who runs it | What it covers |
|---|---|---|
| Web App Scan | Lory (AI) | Crawl, auth testing, injection and access-control checks against a web app or API |
| Network Pentest | Lory (AI) | External hosts (and internal ranges via the Lory Mesh connector) — services, versions, exposure |
| Code Review | Lory (AI) | Source & supply-chain review of a connected repository — clone, secret hunting, and SAST-style sink tracing over the source |
| Cloud Pentest | Lory (AI) | AWS, Azure, GCP, Kubernetes, containers and serverless — IAM, metadata paths, privilege escalation and persistence |
| Mobile Pentest | Lory (AI) | iOS and Android applications and their backends — data storage, IPC and deep links, pinning, resilience |
| Physical | Human-led | Routed to your Lorikeet team. The one engagement type Lory never runs |
Internal Network Access
Lory tests external hosts directly. To reach internal ranges it needs a way onto the network — so instead of a VPN or a fixed jump box, you install a lightweight connector on one machine inside the network. Lory then scans the in-scope internal ranges through it with its normal toolbelt.
Installing the connector
- Start a Network engagement
On Lory AI Pentester, pick a network asset. The form shows an installer with a Linux / macOS and a Windows tab.
- Copy the one-liner for the endpoint's OS
It carries a workspace enrollment token — run it on one machine that can reach the hosts you want tested.
- Lory scans through it
The connector checks in and Lory reaches your in-scope internal ranges for this and future engagements.
Linux/macOS needs root (sudo); on Windows run the command in an elevated PowerShell.
What the connector does
- Outbound only. It dials out to Lorikeet over mutually-authenticated TLS — nothing inbound is opened on your network.
- Auto-detects the local subnets. No config file to write.
- Scoped in Lory. Only the ranges your scope rules authorize are scanned, even though the connector can see the LAN.
- One per network, reusable. One connector serves this and future engagements; remove it any time with the bundled uninstaller.
Test Runs
- Phase 1: Recon & Scoping
Lory maps the surface of each in-scope target it is authorized to test its applications, endpoints, and services.
- Phase 2: Exploitation
Lory attempts real exploitation access control, injection, authentication flaws, business logic abuse and chains findings together.
- Phase 3: Validation + Enrichment
Findings are exploit-validated, enriched with KB context, attack scenarios, and remediation. Screenshots captured.
| Status | Meaning |
|---|---|
| Pending | Queued, waiting to start |
| Running | Actively testing progress shown in real time |
| Completed | Test run finished; findings available |
| Failed | Fatal error retry or contact support |
Lory Findings
- Broken Access Control IDOR, privilege escalation, missing authorization checks
- Authentication & Session Weak auth flows, session fixation, MFA bypass
- Injection SQL injection, command injection, SSTI
- Business Logic Abuse Workflow bypasses, price manipulation, race conditions
- Exposed Services & Secrets Admin panels, exposed environment files, leaked credentials
- Security Misconfiguration Missing security headers, weak TLS, permissive CORS
- Known Vulnerabilities Outdated components with known CVEs
Each finding includes an AI Chat assistant ask "How do I fix this in nginx?", "What's the CVSS score?", or "What's the real-world impact?" and get contextual answers grounded in your specific finding.
Vulnerability Knowledge Base
Lory findings are enriched against nearly 2,000 KB entries sourced from:
- OWASP ASVS Application Security Verification Standard
- OWASP WSTG Web Security Testing Guide
- OWASP Top 10 Most critical web application risks
- MITRE CWE Common Weakness Enumeration
- MITRE CAPEC Common Attack Pattern Enumeration
Pricing & Credits
Lory AI Pentester is usage-based — prepaid credits, no monthly plan, no per-domain limits, no subscription. You load credits and pay only for the testing you actually run.
- Load credits (1 credit = $1) via Stripe in Talon. A positive balance is the start-gate: Lory won't begin an engagement for a company with no credits loaded. Credits don't expire.
- Metered as it runs: AI engagements bill 0.02 credit / 1,000 tokens + 0.10 credit / compute-minute, multiplied by depth (Surface 1.0×, Standard 1.5×, Deep 2.5×). MCP API calls are 0.1 credit each.
- Live visibility: balance, 30-day usage, and per-engagement billable units in Talon. Manage at Credits & usage.
See the Lory pricing page for details.
Lory AI Assistant
Your AI-powered cybersecurity guide, available on every page.
Lory is Lorikeet Security's AI assistant, trained on our full service catalog, pricing, methodology, and a knowledge base of nearly 2,000 vulnerability entries from OWASP, MITRE, and industry frameworks. Lory helps visitors understand cybersecurity concepts in plain English, find the right service, compare pricing, and navigate the platform. Inside Talon, Lory has live access to your projects, findings, and assets for personalized security guidance.
Conversational Chat
Ask questions in everyday language. Lory translates security jargon into plain English with streaming responses.
Knowledge Base Backed
Responses grounded in OWASP Top 10, ASVS, WSTG, MITRE CWE, and MITRE CAPEC data.
Voice Input & Output
Speak your questions and listen to Lory's responses with ElevenLabs-powered natural speech.
Pricing Guidance
Get instant pricing estimates and service recommendations tailored to your needs.
Charts & Reports
Visualize your findings data with interactive charts and generate printable security reports.
Book Meetings & Invoices
Schedule Teams meetings, generate Stripe invoices, or connect with a team member, all from the chat.
Response Types
Lory replies with structured content blocks for a richer experience than plain text.
| Block Type | Description | Example Use |
|---|---|---|
| Text | Plain-language explanation | Answering "What is a pentest?" |
| List | Bullet-pointed items | Listing compliance frameworks |
| Pricing Card | Service name, price, timeline, and description | Showing web app pentest pricing |
| Link Card | Linked resource with title and description | Linking a relevant blog post |
| Table | Comparison data in rows and columns | Comparing service packages |
| Chart | Interactive chart (doughnut, bar, pie) | Severity breakdown of findings |
| Report | Printable security summary with sections | Executive overview of security posture |
| Invoice | Stripe invoice for immediate payment | Paying for a web app pentest |
| Booking | Schedule a Microsoft Teams consultation | Booking a free 30-minute call |
| Handoff | Connect with a human team member now | Urgent question about active engagement |
| Call to Action | Button linking to a next step | "View My Projects" |
Where to Find Lory
- Dedicated page /lory for a full-screen chat experience with voice input and output
- Widget The floating chat bubble on every page of the website
- Inside Talon Authenticated Lory with live access to your projects, findings, and assets
MCP Server
Wire Claude Code, Cursor, Claude Desktop, or any MCP-aware agent directly into your Lorikeet Security workspace.
Model Context Protocol is an open standard for connecting LLMs to external data and tools. Lorikeet Security implements MCP over streamable HTTP: your AI client opens an authenticated HTTP connection, the server responds with JSON-RPC 2.0, and tool calls return structured results.
Once connected, your AI can answer questions like “list all critical findings from this month,” “is api.acme.io in scope for testing?,” or “find KB entries about SSRF” without you copying anything in or out of Talon. Every request is authenticated — either with a per-company bearer token you issue yourself, or via OAuth 2.1 for remote and hosted connectors — and is scoped to read-only permissions by default.
Query Findings
List manual pentest findings by severity, status, project, or affected asset, or fetch the full body of a single finding.
Search the KB
Free-text search across ~1,969 OWASP ASVS/WSTG/Top10 and MITRE CWE/CAPEC entries from a Claude prompt.
Triage Assets
List distinct affected assets with finding counts and a scope verdict so an agent can pick the right target before going deeper.
Check Scope
Confirm any domain, URL, or IP is in scope — with the matching rules — before calling a heavier tool against it.
findings.search spans all three finding stores — manual pentest, incident response, and Lory engagements — while findings.list covers manual pentest findings only. Retired platform scanner output is deliberately not surfaced, and engagement findings appear only once they clear human review. Use findings.assets to discover what's playable, then pivot to findings.detail or scope.check from there.
Endpoint & Authentication
Endpoint
All MCP traffic is JSON-RPC 2.0 over HTTPS to a single base URL:
https://lorikeetsecurity.com/talon/mcp/
An unauthenticated GET on this URL returns a discovery payload — server name, version, transport, the list of tool names exposed, and the catalogue of available scopes. Use it to sanity-check the URL before you issue a token. A POST with a JSON-RPC body dispatches a method call (initialize, tools/list, tools/call, …). The protocol version is 2025-06-18.
{
"name": "lorikeet-mcp",
"version": "0.2.0",
"protocol": "mcp",
"transport": "streamable-http",
"docs": "https://lorikeetsecurity.com/talon/dashboard/mcp-docs",
"tools": ["findings.assets", "findings.detail", "findings.get", "findings.list", "findings.search", "kb.search", "ping", "scope.check"],
"scopes": ["findings:read", "findings:write", "kb:read", "compliance:read", "retest:request", "tickets:write"]
}
Authentication
There are two ways to authenticate, and both end up presenting a bearer token in the Authorization header:
- Static tokens — you issue a long-lived
lkmcp_token yourself on the MCP Server page (the bearer string is shown only once) and paste it into your client's config. Best for local tools like Claude Code and Cursor. Covered below. - OAuth 2.1 — remote and hosted connectors (e.g. the Claude.ai / Claude Desktop connector and the Anthropic MCP Directory) self-register and run an authorization-code flow, so no token is ever copied by hand. See OAuth & Connectors.
Either way the token is scoped to a set of permissions — see Tools & Scopes below. All access tokens are prefixed lkmcp_.
OAuth & Remote Connectors
For hosted clients that can't ship a hand-pasted token — the Claude.ai / Claude Desktop connector, the Anthropic MCP Directory, and similar — the MCP endpoint is a full OAuth 2.1 resource and authorization server with Dynamic Client Registration. You don't configure any of this by hand: point the connector at the base URL and it walks the flow for you, finishing on a Lorikeet consent screen where you approve the requested scopes.
How a connector discovers us
An unauthenticated JSON-RPC request returns 401 with a WWW-Authenticate header that points at our protected-resource metadata, which in turn points at the authorization server:
WWW-Authenticate: Bearer realm="lorikeet-mcp", resource_metadata="https://lorikeetsecurity.com/talon/mcp/.well-known/oauth-protected-resource"
GET /ptaas/mcp/.well-known/oauth-protected-resource— RFC 9728 metadata; names the authorization server and supported scopes.GET /ptaas/mcp/.well-known/oauth-authorization-server— RFC 8414 metadata; advertises theregister,authorize, andtokenendpoints, theauthorization_code+refresh_tokengrants, andS256as the only PKCE method.
The flow
- Register —
POST /ptaas/mcp/oauth/register(RFC 7591). The connector self-registers and receives aclient_id. Public PKCE clients get no secret. Registration is open but rate-limited per IP. - Authorize —
GET /ptaas/mcp/oauth/authorizewith PKCE (S256) required. The human-auth step reuses your Talon session (bouncing through/talon/loginif you're not signed in), then shows a consent screen listing the exact scopes being granted. Approve to be redirected back with an authorization code. - Token —
POST /ptaas/mcp/oauth/tokenexchanges the code (grant_type=authorization_code) for an access token plus a refresh token.
Token lifetimes
- Access tokens are short-lived (1 hour)
lkmcp_bearers — identical in shape to a manually issued token, so every tool behaves the same regardless of how you authenticated. - Refresh tokens last 60 days and rotate on every use via
grant_type=refresh_token. Reuse of an already-rotated refresh token is treated as compromise and revokes the whole token family.
Client Setup
Claude Code
Add the server to ~/.claude/mcp.json (user-level) or your project's .mcp.json:
{
"mcpServers": {
"lorikeet": {
"type": "http",
"url": "https://lorikeetsecurity.com/talon/mcp/",
"headers": {
"Authorization": "Bearer lkmcp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Then in any Claude Code session run /mcp to confirm the connection — you should see lorikeet with a green status.
Claude Desktop
Open the app, go to Settings → Developer → Edit Config, and add:
{
"mcpServers": {
"lorikeet": {
"transport": {
"type": "http",
"url": "https://lorikeetsecurity.com/talon/mcp/",
"headers": { "Authorization": "Bearer lkmcp_..." }
}
}
}
}
Quit and re-open Claude Desktop. The Lorikeet Security tools will appear in the tool picker.
https://lorikeetsecurity.com/talon/mcp/ and approve the OAuth 2.1 consent screen — no token to copy.
Cursor
In Cursor: Settings → MCP → Add new MCP server. Pick the http transport, paste the endpoint URL, and add the bearer header.
Other MCP-Aware Clients
Any client that supports the streamable-HTTP transport from the MCP spec will work. Provide the endpoint URL plus an Authorization: Bearer lkmcp_... header.
Tools & Scopes
Tools are advertised via the standard tools/list JSON-RPC method and invoked via tools/call. The currently published surface:
| Tool | Scope | Description |
|---|---|---|
ping | — | Health check. Returns server time, your company id, token prefix, and the scopes attached to your token. No scope required beyond a valid bearer. |
findings.search | findings:read | List findings across every store — manual pentest, incident response, and Lory engagements — with filters (severity, status, store, q). Each row carries a prefixed ref such as engagement-12. Prefer this over findings.list. |
findings.detail | findings:read | Fetch the full body of one finding from any store by its ref (description, evidence, remediation, CWE, CVSS). Scoped to your company. |
findings.assets | findings:read | List distinct affected_asset values across all three finding stores, each annotated with findings count, high-or-above count, and a scope verdict (in_scope, out_of_scope, unknown). |
findings.list | findings:read | List manual pentest findings only, with filters (severity, status, project_id, affected_asset). Returns up to 50 rows with id, project, title, severity, status, asset, CWE, and CVSS. |
findings.get | findings:read | Fetch the full body of a single manual pentest finding by id (description, attack scenario, remediation, evidence, CVSS, CWE, dates). Scoped to your company. |
kb.search | kb:read | Free-text search across the ~1,969-entry vulnerability KB. Filter by source (OWASP-ASVS, OWASP-WSTG, OWASP-TOP10, MITRE-CWE, MITRE-CAPEC) and severity. |
scope.check | findings:read | Return the current scope verdict for an arbitrary target (domain, URL, or IP) together with the matching rules. Useful for agents that want to confirm a target before calling a heavier tool. |
compliance.frameworks | compliance:read | List the compliance frameworks Lorikeet tracks (SOC 2, ISO 27001, ISO 42001, PCI DSS) with a readiness summary for your company: total controls, status breakdown, and percent complete. |
compliance.controls | compliance:read | Drill into one framework: every control with your status (not_started, in_progress, complete, not_applicable), owner, and due date. Filter by status. Call compliance.frameworks first for the framework keys. |
patch.hosts | patch:read | List hosts reporting OS and package state through the Lorikeet agent, with compliance score and band, EOL status, package manager, open security/pending counts, and last check-in. A host with assessed=false has no supported package manager and so no score — treat it as unknown, not healthy. |
patch.packages | patch:read | The patch backlog per package. kind=missing-patch rows are CVE-backed; kind=pending-update rows are routine updates with no advisory. Note fix_available=false means the vendor acknowledged the CVE but shipped no patch — real exposure, but nothing to install. |
retest.request | retest:request | Submit a request for the Lorikeet team to re-test a finding you believe is fixed. Does not modify the finding itself. Re-requesting a finding that already has an open retest returns the existing one. This is the only write surface on the customer-facing token. |
findings.list / findings.get read the curated pentest_findings table only. For the complete picture — pentest, incident response, and Lory engagement findings in one call — use findings.search / findings.detail. Retired platform scanner output is never surfaced over MCP, and engagement findings appear only after they clear human review.
patch.hosts and patch.packages need the patch:read scope, which today is granted through the OAuth 2.1 flow rather than on a self-issued lkmcp_ token. If you are on a static token and need patch data over MCP, ask your account manager.
Scope Strings
Tokens are issued with a comma-separated scope string. Read-only scopes are the default:
findings:read— search and fetch findings across all stores, list assets, check scopekb:read— query the vulnerability KBcompliance:read— framework readiness and per-control statuspatch:read— host and package patch state from the Lorikeet agent (OAuth tokens today)
retest:request is the only write scope a customer token can carry, and it is off unless you ask for it. findings:write and tickets:write are deliberately not grantable — the tools behind them belong to the platform's own agent path, not to customer tokens.
Example Calls
If you'd rather talk to the server directly than through an agent, here's the raw JSON-RPC. The full POST envelope is shown for the first example; the rest are just JSON bodies.
1. Handshake (initialize)
The first call your client makes after connecting. Returns the negotiated protocol version, server capabilities, and an instructions string that tells the agent how to behave inside the Lorikeet Security surface.
POST https://lorikeetsecurity.com/talon/mcp/
Authorization: Bearer lkmcp_...
Content-Type: application/json
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": { "name": "my-agent", "version": "1.0.0" }
}
}
2. List available tools (tools/list)
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
3. List the latest critical findings
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "findings.list",
"arguments": {
"severity": "critical",
"status": "open",
"limit": 20
}
}
}
4. Search the KB for a topic
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "kb.search",
"arguments": {
"q": "server side request forgery",
"source": "MITRE-CWE",
"limit": 5
}
}
}
5. Confirm a target is in scope
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "scope.check",
"arguments": { "target": "api.acme.io" }
}
}
Every tools/call response wraps the tool's payload in result.content[0].text as a pretty-printed JSON string — that's the standard MCP shape.
Rate Limits & Errors
Rate Limits
Per-token, soft limits apply:
- 60 requests / minute on read calls
- 10 requests / minute on search calls (
kb.search) - Burst capacity: 20 requests in a 5-second window
Exceeding the limit returns HTTP 429 with a Retry-After header. Well-behaved MCP clients back off automatically.
JSON-RPC Error Codes
Errors follow JSON-RPC 2.0 (error.code + error.message). The codes you'll see:
| Code | Meaning | Typical cause |
|---|---|---|
-32700 | Parse error | Request body wasn't valid JSON. |
-32600 | Invalid request | JSON parsed but isn't a valid JSON-RPC object. |
-32601 | Method not found | Unknown JSON-RPC method (not the same as unknown tool). |
-32602 | Invalid params | Missing/extra argument, wrong type, or value out of range. |
-32603 | Internal error | Unhandled server-side exception. Usually transient. |
-32001 | Auth error | Missing, expired, malformed, or revoked bearer. Also returned with data.code: "scope_denied" when a scope rule denies access. |
-32004 | Not found | Resource doesn't exist or isn't owned by your company (e.g. unknown finding id). |
Troubleshooting
401 Unauthorized. Token is missing, malformed, expired, or revoked. Confirm the Authorization: Bearer lkmcp_... header is present and current. A WWW-Authenticate: Bearer realm="lorikeet-mcp" header is returned.
JSON-RPC -32001 with data.code: "scope_denied". Your token doesn't include the scope required by that tool. Ask your account manager to re-issue with the right scopes.
Tools don't show up in Claude Code. Run claude mcp list to confirm the server is registered, then call tools/list directly with curl. If the endpoint returns 200 but the tools list is empty, the token may not have any read scopes attached.
Integrations
Connect Lorikeet Security to your existing toolchain from Talon → Workspace → Marketplace (or Lory AI → Marketplace for Lory AI enrichment). View the full marketplace.
Notifications & Messaging
Microsoft Teams
Adaptive Card alerts delivered to any Teams channel.
Discord
Rich embed security alerts for teams living in Discord.
Custom Webhooks
Push any event to any HTTPS endpoint with HMAC-SHA256 signature support.
Ticketing, Code & DevOps
Jira
Auto-create Jira issues from findings with severity-to-priority mapping.
GitHub
Code vulnerability scanning, secret detection, and dependency analysis.
GitLab
Repository scanning, merge request analysis, and GitLab Issues from findings.
Azure DevOps
Scan Azure Repos and auto-create Azure Boards work items from findings.
Threat Intelligence (Lory AI Pentester)
Enable these from Lory AI → Marketplace to enrich Lory AI pentests with reputation, port, certificate, and DNS data.
VirusTotal
Domain reputation and subdomain discovery via passive DNS and 70+ AV engines.
Shodan
Open port scanning, service fingerprinting, and CVE lookup for your IPs.
AbuseIPDB
IP reputation and abuse-report scoring across your attack surface.
Censys
TLS/SSL certificate monitoring, expiry alerts, and host discovery.
SecurityTrails
Enhanced subdomain enumeration, DNS history, and WHOIS lookups.
Request an integration if you don't see your tool listed — we prioritize the marketplace based on customer demand.
For full webhook payload format and signature verification, see the Developer Documentation.
Webhooks
finding.createdNew confirmed finding added to a projectfinding.updatedFinding severity or status changesfinding.resolvedFinding marked remediated by the pentest teamscan.started/scan.completedLory AI pentest run lifecycleasset.discoveredNew in-scope asset registered for a Lory AI pentestticket.created/ticket.updatedSupport/retest ticket changes
FAQ
Do I need separate accounts for pentests and Lory?
No. Talon is one platform with one login — human-led engagements and the Lory AI Pentester sit side by side inside it.
How long do findings take to appear after a test run?
Findings from human-led engagements appear in real time. Lory AI pentest runs surface findings as they are validated, typically within minutes for small-to-medium in-scope assets.
Can I export findings to CSV or PDF?
PDF export is available from the findings page in Talon. JSON/CSV export is available via the API.
What domains can I add to the Lory AI Pentester?
Only domains and IP ranges you own or have written authorization to test.
How do I request a retest?
Click Mark Ready for Retest on the finding detail page. The team is notified automatically.
Can I invite my developers?
Yes. From Settings → Organization you can invite any number of team members. All members see the same workspace data.
Contact Support
Last updated: August 2026 · Lorikeet Security