Product Knowledge Base
Everything you need to get the most out of the Lorikeet Security platform from kicking off your first pentest to monitoring your entire attack surface.
Getting Access
Lorikeet Security operates two client portals. One account accesses both.
- Sign up at /ptaas/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 your chosen portal
Use the portal toggle on the login page to switch between PTaaS and ASM.
- Choose a plan or activate a demo
Demo accounts can be activated instantly with a code from the pricing page.
Portals at a Glance
PTaaS Client Dashboard
Track active engagements, view findings in real time, manage assets, collaborate with your team, and download deliverables.
Attack Surface Management
Continuously monitor your external attack surface from inside the client dashboard. Automated subdomain discovery, security checks, and AI-enriched findings running 24/7.
| Pentest Engagements | Attack Surface Management | |
|---|---|---|
| Purpose | Managed pentest engagements | Continuous attack surface monitoring |
| Testing | Human-led, expert pentests | Automated, continuous scans |
| Findings | Curated by pentest team | AI-enriched + KB-linked |
| URL | /ptaas/dashboard/ | /ptaas/dashboard/asm/ |
| Integrations | MCP, Slack, Microsoft Teams, Discord, Webhooks, Jira, GitHub, GitLab, Azure DevOps, plus VirusTotal, Shodan, AbuseIPDB, Censys, and SecurityTrails for ASM enrichment | MCP, Webhooks, Slack, VirusTotal, Shodan |
Client Dashboard Overview
Your command center for all active and historical pentest engagements.
The PTaaS portal 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 your dashboard 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 your dashboard 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 the portal. Attestation letter issued.
Attack Surface Management Overview
Continuous, automated external attack surface monitoring for your domains.
The ASM portal runs ongoing security scans against your registered domains, alerting you when new subdomains appear, misconfigurations emerge, or vulnerable services are exposed.
Subdomain Enumeration
Automated discovery of all subdomains belonging to your registered domains, including shadow IT.
Security Checks
Each discovered host is checked for open ports, TLS issues, security headers, exposed services, and more.
AI Enrichment
Findings are enriched with AI-generated context, attack scenarios, and remediation from a curated KB.
Visual Screenshots
Each discovered web asset is automatically screenshotted so you can see what's exposed.
Domain Management
Add root domains you own. The scanner discovers and monitors all subdomains automatically.
- ASM → Domains → Add Domain
Enter your root domain (e.g.
example.com). - Verify ownership (some plans)
Add a DNS TXT record to confirm ownership.
- Domain is monitored continuously
Scans run on schedule. Manual scans can be triggered anytime.
Domain Limits by Plan
| Plan | Domains | Scan Frequency | Findings History |
|---|---|---|---|
| Personal | 1 | Weekly | 30 days |
| Professional | 5 | Daily | 90 days |
| Company | Unlimited | Continuous | Unlimited |
Scan Jobs
- Phase 1: Subdomain Enumeration
DNS enumeration, certificate transparency logs, and brute-force wordlists.
- Phase 2: Security Checks
Open ports, TLS/SSL config, HTTP headers, admin panels, subdomain takeover risk, and more.
- Phase 3: AI Enrichment + Screenshots
Findings enriched with KB context, attack scenarios, and remediation. Screenshots captured.
| Status | Meaning |
|---|---|
| Pending | Queued, waiting to start |
| Running | Actively scanning progress shown in real time |
| Completed | Scan finished; findings available |
| Failed | Fatal error retry or contact support |
ASM Findings
- TLS/SSL Expired certificates, weak ciphers, missing HSTS
- Security Headers Missing CSP, X-Frame-Options, CORP, etc.
- Exposed Services Admin panels, databases, RDP/SSH exposed to the internet
- Subdomain Takeover Dangling DNS records pointing to unclaimed cloud resources
- Open Ports Unexpected services on non-standard ports
- Outdated Software Detected versions with known CVEs
- Misconfiguration Public S3 buckets, exposed environment files
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
ASM 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
Plans & Limits
ASM is available as a standalone subscription. See /asm#pricing for current pricing.
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. In the authenticated portal, 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
- Dashboard Authenticated Lory inside the PTaaS and ASM portals 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 the portal. 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 PTaaS 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 ASM 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.
pentest_findings table is exposed via MCP. ASM scanner findings are deliberately not surfaced; use asm.assets to discover what's playable, then pivot to PTaaS findings 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/ptaas/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/ptaas/dashboard/mcp-docs",
"tools": ["asm.assets", "findings.get", "findings.list", "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/ptaas/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 dashboard session (bouncing through/ptaas/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/ptaas/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/ptaas/mcp/",
"headers": { "Authorization": "Bearer lkmcp_..." }
}
}
}
}
Quit and re-open Claude Desktop. The Lorikeet Security tools will appear in the tool picker.
https://lorikeetsecurity.com/ptaas/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.list | findings:read | List PTaaS pentest findings 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 PTaaS 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. |
asm.assets | findings:read | List distinct affected_asset values from your ASM findings, each annotated with findings count, high/critical count, and a scope verdict (in_scope, out_of_scope, unknown). |
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. |
pentest_findings table is exposed through findings.list / findings.get. ASM scanner findings are deliberately not surfaced over MCP — use asm.assets for the ASM surface.
Scope Strings
Tokens are issued with a comma-separated scope string. Read-only scopes are the default:
findings:read— list and fetch PTaaS findings, list ASM assets, check scopekb:read— query the vulnerability KBcompliance:read— read GRC control state (planned)
Write scopes — findings:write, tickets:write, retest:request — require a separate explicit grant from your account manager and are off by default.
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/ptaas/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 Dashboard → Workspace → Marketplace (or Attack Surface → Marketplace for ASM enrichment). We ship 13 production integrations across four categories. View the full marketplace.
Notifications & Messaging
Slack
Real-time alerts for new findings, scan completions, and retest updates.
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 (Attack Surface)
Enable these from Attack Surface → Marketplace to enrich ASM scans 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.completedASM scan job lifecycleasset.discoveredNew asset found during ASM enumerationticket.created/ticket.updatedSupport/retest ticket changes
FAQ
Can I use both portals with one account?
Yes. One Lorikeet Security account grants access to both. Use the portal toggle on the login page.
How long do findings take to appear after a scan?
PTaaS findings appear in real time. ASM scan jobs complete in 3–10 minutes for small-to-medium attack surfaces.
Can I export findings to CSV or PDF?
PDF export is available from the findings dashboard. JSON/CSV export is available via the API.
What domains can I add to ASM?
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: May 2026 · Lorikeet Security