OnSecurity MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OnSecurity MCP Servershow me the top 10 most common findings across pentests"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OnSecurity MCP
A Model Context Protocol (MCP) server for the OnSecurity API with the ability query rounds, findings, prerequisites, blocks and notifications.
Installation
Add the following to your Claude Desktop configuration file (adjust the paths as needed) and choose UAT or Prod:
{
"mcpServers": {
"onsec-mcp": {
"command": "npx",
"args": [
"-y",
"github:onsecurity/onsecurity-mcp-server"
],
"env": {
"ONSECURITY_API_TOKEN": "your_api_token",
"ONSECURITY_API_BASE": "https://app.onsecurity.io/api/v2"
}
}
}
}After adding this configuration, restart Claude Desktop, and you'll be able to access the OnSecurity tools through Claude.
Related MCP server: @konsulto/mcp
Usage
Once configured, Claude will have access to the following tools:
get-roundsget-findingsget-blocksget-notificationsget-prerequisites
Example Questions
Give me a summary of my most recent pentest/scan.
Show me trends across my pentests as a graph.
What can I address to make the most impact most quickly on my most recent pentest?
I would like summaries for different types of stakeholders on the state of our recent pentest engagemenets - eg high level, technical, managerial etc
Do I need to action anything to prevent test getting held up?
Are there any new findings?
What are the top 10 most common findings across pentests and scans.
Note: It is useful sometimes to configure Claude to "Extended thinking" for some questions.
Available Tools
5 toolsget-blocksB
Get all blocks data from OnSecurity. Blocks are reusable security finding templates that can be used across different assessments. They contain standardized vulnerability descriptions, risks, and recommendations. Note that you can get how often a block is used, which is a way to get the most common findings ACROSS ALL CLIENTS ONLY as blocks are the basis of findings across pentests and scans.
| Name | Required | Description | Default |
|---|---|---|---|
| round_type_id | No | Optional round type ID to filter blocks, 1 = pentest round, 3 = scan round | |
| approved | No | Optional filter for approved blocks only | |
| automation_approved | No | Optional filter for automation approved blocks only | |
| sort | No | Optional sort parameter in format 'field-direction'. Available values: id-asc, round_type_id-asc, name-asc, approved-asc, used_count-asc, created_at-asc, updated_at-asc, id-desc, round_type_id-desc, name-desc, approved-desc, used_count-desc, created_at-desc, updated_at-desc. Default: id-asc | |
| limit | No | Optional limit parameter for max results per page (e.g. 15) | |
| page | No | Optional page number to fetch (default: 1) | |
| includes | No | Optional related data to include as comma-separated values. Available: block_business_risks, block_field_variants, block_imports, block_references, block_remediations, block_target_types, block_variables, business_risks, remediations, revisions (e.g. 'block_business_risks,block_remediations') | |
| fields | No | Optional comma-separated list of fields to return (e.g. 'id,name,approved'). Use * as wildcard. | |
| filters | No | Optional additional filters in format {field: value} or {field-operator: value} where operator can be mt (more than), mte (more than equal), lt (less than), lte (less than equal), eq (equals, default) | |
| search | No | Optional search term to filter blocks by matching text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that blocks are 'reusable security finding templates' and that usage counts reflect 'most common findings ACROSS ALL CLIENTS', which adds useful context about data scope and aggregation. However, it doesn't address critical behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior (implied by 'limit' and 'page' parameters but not explained), or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise with three sentences that each add value: defining blocks, explaining their purpose, and noting the usage count feature. It's front-loaded with the core purpose ('Get all blocks data'). While efficient, the third sentence could be slightly more streamlined as it contains some redundancy ('across different assessments' and 'across pentests and scans').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 optional parameters, no output schema, no annotations), the description provides adequate but incomplete context. It explains what blocks are and hints at usage analytics, but doesn't address the tool's behavioral characteristics, return format, or error handling. For a data retrieval tool with many filtering options, more guidance on result structure and limitations would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing detailed documentation for all 10 parameters. The description adds minimal parameter semantics beyond the schema, only implicitly referencing 'used_count' through the mention of 'how often a block is used'. Since schema coverage is high, the baseline score of 3 is appropriate as the description doesn't significantly enhance parameter understanding beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get all blocks data from OnSecurity' with a specific verb ('Get') and resource ('blocks data'). It explains what blocks are ('reusable security finding templates'), which helps distinguish them from sibling tools like 'get-findings' or 'get-rounds'. However, it doesn't explicitly differentiate this tool from its siblings in terms of when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some implied usage guidance by noting that blocks are 'the basis of findings across pentests and scans' and mentioning that 'you can get how often a block is used' to identify common findings across clients. However, it lacks explicit instructions on when to use this tool versus alternatives like 'get-findings' or 'get-rounds', and doesn't specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-findingsB
Get all findings data from OnSecurity from client in a high level summary, only include the summary, not the raw data and be sure to present the data in a way that is easy to understand for the client. You can optionally filter findings by round_id. HOWEVER ONLY USE THIS TOOL WHEN ASKED FOR FINDINGS RELATED TO A CLIENT OR MY FINDINGS, NOT THE BLOCKS TOOL.
| Name | Required | Description | Default |
|---|---|---|---|
| round_id | No | Optional round ID to filter findings | |
| round_type | No | Optional round type to filter rounds, 1 = pentest round, 3 = scan round | |
| sort | No | Optional sort parameter in format 'field-direction'. Available values: name-asc, round_id-asc, created_at-asc, updated_at-asc, name-desc, round_id-desc, created_at-desc, updated_at-desc. Default: id-asc | |
| limit | No | Optional limit parameter for max results per page (e.g. 15) | |
| page | No | Optional page number to fetch (default: 1) | |
| includes | No | Optional related data to include as comma-separated values (e.g. 'client,round,target_components') | |
| fields | No | Optional comma-separated list of fields to return (e.g. 'id,name'). Use * as wildcard. | |
| filters | No | Optional additional filters in format {field: value} or {field-operator: value} where operator can be mt (more than), mte (more than equal), lt (less than), lte (less than equal), eq (equals, default) | |
| search | No | Search term to find findings by name of finding or related content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the tool returns 'a high level summary, only include the summary, not the raw data', it doesn't describe important behavioral aspects like authentication requirements, rate limits, pagination behavior (implied by limit/page parameters but not explained), or what happens when no findings exist. The description adds some context about presentation format but misses key operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise but has structural issues. The first sentence contains multiple clauses that could be separated. The usage warning is tacked on at the end rather than integrated. While not excessively verbose, the flow could be improved for better front-loading of key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the relationship between parameters, how filtering works in practice, what the summary format looks like, or error conditions. The description focuses on usage constraints and basic purpose but leaves many operational questions unanswered given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description only mentions the 'round_id' parameter specifically ('You can optionally filter findings by round_id') and implies summary formatting. It adds minimal value beyond what the schema provides, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get all findings data from OnSecurity from client in a high level summary'. It specifies the verb ('Get'), resource ('findings data'), and scope ('high level summary'). However, it doesn't explicitly differentiate from sibling tools like 'get-blocks' beyond the usage warning at the end.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'ONLY USE THIS TOOL WHEN ASKED FOR FINDINGS RELATED TO A CLIENT OR MY FINDINGS, NOT THE BLOCKS TOOL.' This clearly states when to use this tool versus alternatives, specifically warning against using it for 'blocks' requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-notificationsC
Get all notifications data from OnSecurity from client in a high level summary, only include the summary, not the raw data and be sure to present the data in a way that is easy to understand for the client.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Optional sort parameter (e.g. 'created_at-desc' for newest first) | |
| limit | No | Optional limit parameter (e.g. 10 for 10 notifications per page) | |
| page | No | Optional page number to fetch (default: 1) | |
| includes | No | Optional related data to include | |
| fields | No | Optional comma-separated list of fields to return (e.g. 'heading,created_at') | |
| filters | No | Optional additional filters in format {field: value} or {field-operator: value} where operator can be mt (more than), mte (more than equal), lt (less than), lte (less than equal), eq (equals, default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool provides 'high level summary, only include the summary, not the raw data' which gives some behavioral context about output format. However, it doesn't disclose important behavioral traits like whether this is a read-only operation, potential rate limits, authentication requirements, or what happens with pagination (implied by 'limit' and 'page' parameters).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, reasonably concise sentence that front-loads the core purpose. However, it could be more structured by separating the 'what' from the 'how' - currently it mixes functional description ('Get all notifications data') with implementation guidance ('be sure to present the data in a way that is easy to understand').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no annotations, no output schema, and true nested objects in the schema, the description is insufficient. It doesn't explain the relationship between the filtering parameters and the 'high level summary' output, doesn't describe the return format, and provides no guidance on error conditions or limitations. The description focuses on presentation aspects while neglecting operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all 6 parameters. The description adds no additional parameter semantics beyond what's in the schema descriptions. It doesn't explain how parameters interact with the 'high level summary' output or provide usage examples. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Get all notifications data from OnSecurity' which provides a clear verb+resource combination, but it doesn't distinguish this tool from its siblings (get-blocks, get-findings, etc.) beyond mentioning 'notifications'. The description adds that it provides 'high level summary' data, which helps differentiate its output format from raw data retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its sibling tools (get-blocks, get-findings, get-prerequisites, get-rounds). It mentions presenting data 'in a way that is easy to understand for the client' which implies a presentation-focused use case, but doesn't specify when this summary view is preferable to raw data access or when to choose notifications over other data types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-prerequisitesC
Get all prerequisites data from OnSecurity for a specific round. Prerequisites are requirements that need to be fulfilled before a security assessment can begin.
| Name | Required | Description | Default |
|---|---|---|---|
| round_id | Yes | Required round ID to filter prerequisites | |
| sort | No | Optional sort parameter in format 'field-direction'. Available values: name-asc, name-desc, created_at-asc, created_at-desc, updated_at-asc, updated_at-desc. Default: id-asc | |
| limit | No | Optional limit parameter for max results per page (e.g. 15) | |
| page | No | Optional page number to fetch (default: 1) | |
| fields | No | Optional comma-separated list of fields to return (e.g. 'id,name,status'). Use * as wildcard. | |
| filters | No | Optional additional filters in format {field: value} or {field-operator: value} where operator can be mt (more than), mte (more than equal), lt (less than), lte (less than equal), eq (equals, default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('Get'), but doesn't mention authentication needs, rate limits, pagination behavior (beyond what parameters imply), error conditions, or response format. For a tool with 6 parameters and no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences. The first sentence states the core purpose, and the second provides helpful domain context about what prerequisites are. There's no wasted text, though it could be slightly more structured for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, nested objects, no output schema, and no annotations), the description is insufficient. It doesn't address authentication, response format, error handling, or practical usage scenarios. The agent would need to infer much from the parameter schema alone, which is inadequate for a tool with this level of functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no parameter-specific information beyond implying round_id is needed for filtering. This meets the baseline of 3 when the schema does the heavy lifting, but doesn't provide additional semantic context like example values or usage patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('prerequisites data from OnSecurity for a specific round'), and explains what prerequisites are ('requirements that need to be fulfilled before a security assessment can begin'). However, it doesn't explicitly differentiate this tool from its siblings (get-blocks, get-findings, etc.), which all appear to be data retrieval tools for different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, nor does it specify prerequisites for use (e.g., authentication requirements, round existence). The only implied context is needing a round_id, but this is covered in the required parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-roundsC
Get all rounds data from OnSecurity from client in a high level summary. When replying, only include the summary, not the raw data and be sure to present the data in a way that is easy to understand for the client. Rounds can be pentest rounds, scan rounds, or radar rounds.
| Name | Required | Description | Default |
|---|---|---|---|
| round_type | No | Optional round type to filter rounds, 1 = pentest round, 3 = scan round | |
| sort | No | Optional sort parameter in format 'field-direction'. Available values: name-asc, start_date-asc, end_date-asc, authorisation_date-asc, hours_estimate-asc, created_at-asc, updated_at-asc, name-desc, start_date-desc, end_date-desc, authorisation_date-desc, hours_estimate-desc, created_at-desc, updated_at-desc. Default: id-asc | |
| limit | No | Optional limit parameter for max results per page (e.g. 15) | |
| page | No | Optional page number to fetch (default: 1) | |
| includes | No | Optional related data to include as comma-separated values (e.g. 'client,findings,targets') | |
| fields | No | Optional comma-separated list of fields to return (e.g. 'id,name,started'). Use * as wildcard. | |
| filters | No | Optional additional filters in format {field: value} or {field-operator: value} where operator can be mt (more than), mte (more than equal), lt (less than), lte (less than equal), eq (equals, default) | |
| search | No | Search term to find rounds by name of round or name of client |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool gets data and should output a summary, but lacks critical details: it doesn't mention whether this is a read-only operation, potential rate limits, authentication requirements, or what happens with large datasets (e.g., pagination behavior). The instruction to 'present the data in a way that is easy to understand' is more about output formatting than tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise with three sentences, but the second sentence about 'When replying...' contains presentation instructions that don't belong in a tool description (should be in the agent's prompt, not the tool definition). This reduces efficiency. The structure is front-loaded with the core purpose but includes extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, no annotations, no output schema), the description is incomplete. It doesn't address key behavioral aspects like safety (read vs. write), performance considerations, or what the output looks like. The presentation instructions don't compensate for missing tool behavior context. For a data retrieval tool with rich parameters but no structured safety hints, more guidance is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all 8 parameters well-documented in the input schema. The description adds no parameter-specific information beyond what's already in the schema. According to the scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'all rounds data from OnSecurity' and provides a 'high level summary', which is a specific verb+resource combination. It distinguishes the types of rounds (pentest, scan, radar) but doesn't explicitly differentiate from sibling tools like get-findings or get-blocks, keeping it at a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get-findings or get-blocks. It mentions that the output should be a summary for the client, but this is about presentation rather than tool selection criteria. No explicit when/when-not or alternative tools are referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
- First observed
get-blocks - First observed
get-findings - First observed
get-notifications - First observed
get-prerequisites - First observed
get-rounds
TDQS
Each tool has a clearly distinct purpose targeting different resources: blocks (security templates), findings (client security issues), notifications (client alerts), prerequisites (assessment requirements), and rounds (assessment cycles). The descriptions explicitly differentiate them, with notes like 'NOT THE BLOCKS TOOL' to prevent confusion, ensuring no overlap in functionality.
All tool names follow a consistent verb_noun pattern with hyphens (e.g., get-blocks, get-findings, get-notifications). This uniform naming convention makes the tool set predictable and easy to navigate, with no deviations in style or structure across the five tools.
With 5 tools, the count is reasonable for a security assessment server, covering key areas like templates, findings, notifications, prerequisites, and rounds. It is slightly lean but well-scoped; minor gaps like update or delete operations are acceptable given the server's focus on data retrieval for client summaries.
The tool set provides good read-only coverage for retrieving security assessment data, but there are notable gaps in CRUD operations. For example, there are no tools for creating, updating, or deleting findings, blocks, or rounds, which limits agents to viewing data without modifying it, potentially hindering workflow completeness in a security management context.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP Server for the Notion API, enabling Claude to interact with Notion workspaces.314,626922MIT

@konsulto/mcpofficial
AlicenseAqualityBmaintenanceMCP server that enables Claude Code to drive the Konsulto cybersecurity audit platform from the CLI, including reading and writing findings, managing evidence, and handling scope and assets.19171MIT
@repomend/mcpofficial
AlicenseNot gradedqualityDmaintenanceSecurity scanning MCP server that connects Claude to RepoMend findings, enabling vulnerability management and automated fix drafting.MIT- AlicenseAqualityCmaintenanceMCP server that connects Claude to Dependency-Track for natural language vulnerability triage, analysis, and management.14MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/onsecurity/onsecurity-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server