fortra-fim-mcp
This server provides a local stdio MCP interface for interacting with the Tripwire Enterprise REST API, primarily focused on File Integrity Monitoring (FIM) workflows. It exposes the following tools:
te_get_status: Retrieve the current status of the Tripwire Enterprise API and server.
te_list_nodes / te_get_node: Search and list monitored nodes with filters (name, paging, etc.), or fetch a specific node by ID.
te_get_policy_test_results / te_get_policy_test_result: Query policy compliance test results filtered by node, state, policy test name, etc., or fetch a single result by ID.
te_list_versions / te_get_version: Search element versions with filters (node ID, rule name, promotion status, severity range), or get a specific version by ID.
Allowlist results across four categories:
te_list_allowlist_software_resultste_list_allowlist_open_port_resultste_list_allowlist_user_resultste_list_allowlist_service_results
te_promote_versions: Submit a promotion request for one or more element versions (with approval ID, comment, and custom property type).
te_get_promote_request: Check the status of a previously submitted promotion request.
te_api_request: Make raw GET, POST, PUT, DELETE, or PATCH requests to any Tripwire Enterprise API endpoint under
/api/v1.
Additional features:
Most list tools accept a
filtersobject mapping to Tripwire query parameters (e.g.,name,nodeId,state,pageLimit,pageStart).All tools support a
rawflag to return full Tripwire JSON or a condensed, MCP-friendly summary with acount.
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., "@fortra-fim-mcplist nodes with name containing 'prod'"
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.
fim-mcp
Local stdio MCP server for the Tripwire Enterprise REST API.
The first version wraps the core FIM workflows:
list and fetch nodes
get policy test results
list and fetch element versions
explore allowlist software, open port, user, and service results
promote element versions
check promote request status
make a raw Tripwire API request for uncovered endpoints
Setup
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .
Copy-Item .env.example .envEdit .env:
TE_HOST=https://TECONSOLEHOST/api
TE_USERNAME=administrator
TE_API_TOKEN=replace-with-token
TE_VERIFY_SSL=false
TE_TIMEOUT=30TE_HOST may point at either the API root (https://server/api) or the versioned API root (https://server/api/v1).
Related MCP server: ConnectWise API Gateway MCP Server
Run
python -m fim_mcpFor MCP clients that need a command:
{
"mcpServers": {
"fim-mcp": {
"command": "python",
"args": ["-m", "fim_mcp"],
"env": {
"TE_HOST": "https://TECONSOLEHOST/api",
"TE_USERNAME": "administrator",
"TE_API_TOKEN": "replace-with-token",
"TE_VERIFY_SSL": "false"
}
}
}
}If your Python user scripts directory is on PATH, the installed fim-mcp command works too.
Use with Codex
Codex reads MCP server definitions from config.toml in your Codex home directory. On Windows this is usually:
C:\Users\<you>\.codex\config.tomlAfter running the setup steps above, add this to that file. Use the full path to the virtual environment Python for the repo:
[mcp_servers.fim-mcp]
command = 'C:\path\to\fim-mcp\.venv\Scripts\python.exe'
args = ['-m', 'fim_mcp']
startup_timeout_sec = 30
[mcp_servers.fim-mcp.env]
TE_HOST = 'https://TECONSOLEHOST/api'
TE_USERNAME = 'administrator'
TE_API_TOKEN = 'replace-with-token'
TE_VERIFY_SSL = 'false'
TE_TIMEOUT = '30'For this checkout, the command path would look like:
command = 'C:\Users\chris\Downloads\vibes\te mcp\.venv\Scripts\python.exe'If you install the package somewhere already on PATH, you can use the console script instead:
[mcp_servers.fim-mcp]
command = 'fim-mcp'
args = []
startup_timeout_sec = 30
[mcp_servers.fim-mcp.env]
TE_HOST = 'https://TECONSOLEHOST/api'
TE_USERNAME = 'administrator'
TE_API_TOKEN = 'replace-with-token'
TE_VERIFY_SSL = 'false'
TE_TIMEOUT = '30'Restart Codex, or start a new Codex session, after editing config.toml. To verify the server is available, ask Codex to list Tripwire Enterprise nodes or call te_get_status. If the server starts correctly, Codex will have access to the te_* tools listed below.
Tools
te_get_statuste_list_nodeste_get_nodete_get_policy_test_resultste_get_policy_test_resultte_list_versionste_get_versionte_list_allowlist_software_resultste_list_allowlist_open_port_resultste_list_allowlist_user_resultste_list_allowlist_service_resultste_promote_versionste_get_promote_requestte_api_request
Most list tools accept a filters object. The keys map directly to Tripwire Enterprise query parameters, so filters such as name, sub_name, nodeId, state, pageLimit, and pageStart can be passed without code changes.
Set raw: true on wrapped tools to return the Tripwire JSON unchanged. The default response returns a smaller MCP-friendly summary plus a count.
Available Tools
10 toolste_api_requestB
Call any Tripwire Enterprise API endpoint under /api/v1.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | Yes | ||
| query | No | ||
| method | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It merely states 'call an endpoint' without mentioning authentication requirements, rate limits, error handling, or potential destructive side effects of arbitrary API calls.
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 concise sentence with no wasted words. It is front-loaded with the key action. However, it could benefit from a slightly more structured format with parameter hints.
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 (generic API caller with 4 parameters and no output schema) and the complete lack of behavioral annotations, the description is too minimal. It does not explain how to use parameters, what the response looks like, or that this is for advanced users.
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 0%, meaning the schema provides no parameter descriptions. The description adds no meaning for any of the four parameters (method, path, query, body). It fails to compensate for the lack of schema documentation.
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 calls any Tripwire Enterprise API endpoint under /api/v1. The verb 'call' and specific resource 'any Tripwire Enterprise API endpoint' makes the purpose unambiguous, and it distinguishes from sibling tools that are specific endpoints.
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 implies this tool is for endpoints not covered by specific sibling tools, but it does not explicitly state when to use this versus alternatives, nor does it provide any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
te_get_nodeB
Get one Tripwire node by readable-key node ID.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | ||
| node_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states a basic read operation. It fails to disclose any behavioral traits such as authentication requirements, rate limits, or return value characteristics.
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?
A single concise sentence with no redundant phrasing. While short, it is front-loaded and efficient, though it could benefit from adding brief parameter details without becoming verbose.
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 simple get operation with one required parameter, the description is minimally adequate but lacks details on the 'raw' parameter, return value, and error conditions. Sibling tools exist, but no comparison is provided.
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?
Only 1 of 2 parameters (node_id) is explained by the description ('by readable-key node ID'), while the 'raw' parameter is completely undocumented. With 0% schema description coverage, the description should compensate but does not fully.
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 explicitly states it retrieves a single Tripwire node by its readable-key ID, clearly distinguishing it from sibling tools like te_list_nodes which list multiple nodes.
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?
No guidance on when or when not to use this tool relative to alternatives. Sibling tools exist but are not mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
te_get_policy_test_resultB
Get one policy test result by readable-key result ID.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | ||
| result_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation ('Get'), which is minimally transparent. However, with no annotations, it carries full burden; it does not disclose potential side effects, authentication requirements, or rate limits. Overall, it provides basic but insufficient behavioral detail.
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 single-sentence description is concise and front-loaded with the essential action. Every word adds value, with no redundant 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?
Given the simple tool (2 parameters, no output schema, no annotations), the description covers the core purpose but leaves gaps: it does not explain the 'raw' parameter or the meaning of 'readable-key result ID', leaving the agent with incomplete 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 0%, and the description adds no meaning beyond the raw schema. The 'raw' boolean parameter and 'result_id' string are not explained; the description only mentions 'result ID' without clarifying the format or role of 'raw'. The description fails to compensate for the lack of schema descriptions.
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 'Get one policy test result by readable-key result ID', which specifies the verb (get), resource (policy test result), and method (by ID). It distinguishes this tool from its sibling 'te_get_policy_test_results' (plural), which likely retrieves multiple results.
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 offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or context for selecting this tool over siblings like 'te_get_policy_test_results' or others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
te_get_policy_test_resultsC
Search policy test results. Use filters for nodeId, state, policyTestName, paging, and other API parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | ||
| latest | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral traits. It only says 'Search', implying read-only, but does not explicitly state it is non-destructive, lacks rate limit info, authentication needs, or any side effects. This is inadequate for an agent to understand operational impact.
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 sentence with a list of filters, front-loaded with the purpose. No extraneous information; it is efficient and well-structured for quick reading.
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 3 parameters, no output schema, and no required fields, the description should explain return values and all parameters. It only partially covers filters and omits explanation of 'raw' and 'latest'. No mention of output format or pagination behavior, leaving the tool usage incomplete.
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 0%, so the description must compensate. It adds meaning to the 'filters' parameter by listing common fields (nodeId, state, policyTestName, paging), but does not explain 'raw' and 'latest' parameters. This provides partial value but leaves gaps.
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 'Search' and resource 'policy test results', and lists specific filter fields (nodeId, state, policyTestName) which add detail. However, it does not differentiate from sibling tools like te_get_policy_test_result (singular) or te_get_node, so clarity is good but not exceptional.
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 mentions 'Use filters for...' but provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context. There is no when/when-not distinction, making it insufficient for guiding tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
te_get_promote_requestC
Get status for a Tripwire element version promotion request.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | ||
| request_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states 'Get status' which implies a read-only operation, but does not disclose whether it requires authentication, has rate limits, or if it has any side effects. Given the lack of annotations, more detail is needed.
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 sentence and is concise, but it is under-specified. It does not front-load the most critical information (e.g., that this is a status check for a promotion request) in a structured way. While not verbose, it sacrifices informativeness for brevity.
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 no output schema, two parameters without descriptions, and no annotations, the description is severely lacking. It does not explain what the returned status looks like, possible status values, or any context about how this tool fits into the promotion workflow. This is insufficient for an agent to use correctly.
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 0%, and the description does not mention any parameter details. It fails to explain the purpose of the 'raw' and 'request_id' parameters or provide context beyond what the schema structure shows. This leaves the agent without clarity on required inputs.
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 the resource 'status for a Tripwire element version promotion request'. It is specific enough to distinguish from sibling tools like te_get_status (likely overall status) and te_get_version (version details). However, it could be improved by explicitly mentioning that the status is retrieved using a request_id.
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 such as te_promote_versions or te_list_versions. It does not indicate prerequisites, such as needing a valid request_id from a previous promotion attempt.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
te_get_statusC
Get Tripwire Enterprise API and server status.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only states 'status' without disclosing behavioral traits like whether it is read-only, what data is returned, or any side effects. The description adds minimal behavioral context.
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 very concise with one sentence, but it is under-specified. It earns its place but lacks important details, making it merely adequate in length.
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 has one optional parameter and no output schema, the description does not explain what the status encompasses, what the return format is, or how to interpret results. It is incomplete for an agent to use effectively.
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 one parameter 'raw' with type boolean and default false. Schema description coverage is 0%, meaning the description adds no explanation of what 'raw' does. The description does not compensate for this lack of documentation.
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 action 'Get' and the resource 'Tripwire Enterprise API and server status', making the tool's purpose straightforward. However, it does not differentiate from sibling tools like te_get_version, which might also retrieve status information.
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?
No guidance on when to use this tool versus alternatives (e.g., te_get_version for version-specific status). No prerequisites or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
te_get_versionB
Get one element version by readable-key version ID.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | ||
| version_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states it performs a 'Get' operation, implying read-only, but fails to disclose what happens on failure, return format, or any side effects. Minimal behavioral information.
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?
Single sentence, efficient and front-loaded with action and resource. No unnecessary words, but could be more informative without losing conciseness.
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 no output schema and no annotations, the description should provide more context about what an 'element version' is, what the return value contains, and how it differs from other tools. Insufficient for complete understanding.
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 has 0% description coverage, so description must compensate. It adds meaning to version_id as a 'readable-key version ID' but does not explain the 'raw' boolean parameter. Partial semantic value added.
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 action (Get), the resource (one element version), and the identifier (by readable-key version ID). It distinguishes from sibling tools like te_list_versions which lists multiple versions.
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?
No guidance on when to use this tool versus alternatives such as te_list_versions or te_get_node. No prerequisites or exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
te_list_nodesC
Search Tripwire nodes. Pass Tripwire query parameters in filters.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | ||
| filters | No | ||
| summaries | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral info. It only states it searches nodes, implying a read operation. No disclosure of authentication needs, rate limits, error handling, or what happens with invalid filters.
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?
Single sentence is concise but lacks necessary elaboration. It is front-loaded with the main action, but missing details that would justify its length.
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 no output schema, no annotations, and 3 undocumented parameters, the description is too sparse. It does not explain return format, pagination, or how to use filters effectively.
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 0%, so description must explain parameters. It only mentions filters vaguely. The boolean parameters 'raw' and 'summaries' are not described at all, leaving ambiguity about their effect.
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?
Description clearly states verb+resource: 'Search Tripwire nodes.' It distinguishes from sibling tools like te_get_node (single node) and te_list_versions (versions list). However, it could be more specific by saying 'list all nodes' instead of 'search'.
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?
Description says 'Pass Tripwire query parameters in filters,' which gives minimal usage hint. No guidance on when to use this vs alternatives like te_get_node, no when-not-to-use conditions, and no explanation of required prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
te_list_versionsC
Search element versions. Use filters for nodeId, ruleName, isPromoted, severityRange, paging, and other API parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | ||
| latest | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose side effects, permissions, rate limits, or whether the operation is read-only. For a search operation, this is a notable gap.
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 concise sentence, but it lacks structure (e.g., no separation of purpose from parameter guidance). It is adequately brief but not highly organized.
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?
With no output schema and low parameter documentation, the description fails to fully inform the agent about return values, paging behavior, or how parameters interact. The context is insufficient for a tool with 3 parameters.
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 0%, and the description only adds meaning for the 'filters' parameter (listing possible fields). It does not explain 'raw' or 'latest' parameters, which are critical for use.
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 uses the verb 'Search' and identifies the resource as 'element versions', giving a specific purpose. It also lists example filter fields, but does not distinguish from siblings like te_get_version.
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 mentions using filters but provides no guidance on when to use this tool versus alternatives (e.g., te_get_version for single version retrieval). No when-not-to-use or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
te_promote_versionsC
Submit a Tripwire element version promotion request.
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | ||
| comment | Yes | ||
| approval_id | Yes | ||
| version_ids | Yes | ||
| custom_property_type_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It states 'Submit a ... request' but does not explain if the request is asynchronous, what responses or side effects to expect, or any required permissions. This is insufficient for an agent to understand the tool's 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?
While the description is short (one sentence), it omits essential information, making it under-specified rather than concise. The single sentence could be improved by front-loading key details.
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 has 5 parameters (4 required), no output schema, and no annotations, the description is critically incomplete. It fails to provide enough context for an agent to correctly invoke the tool, especially regarding parameter usage and expected outcomes.
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 0%, so the description should explain parameters. It does not mention any of the 5 parameters (version_ids, approval_id, comment, custom_property_type_id, raw), leaving the agent with no semantic understanding of what each parameter represents or is used for.
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 includes a specific verb ('Submit') and resource ('Tripwire element version promotion request'), making the primary action unambiguous. However, it does not differentiate from sibling tools like te_get_promote_request, which could cause confusion.
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?
No guidance is provided on when to use this tool versus alternatives. The description lacks context such as prerequisites, conditions for promotion, or comparison to other te_* tools.
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.
10 tool updates
v0.1.0- First observed
te_api_request - First observed
te_get_node - First observed
te_get_policy_test_result - First observed
te_get_policy_test_results - First observed
te_get_promote_request - First observed
te_get_status - First observed
te_get_version - First observed
te_list_nodes - First observed
te_list_versions - First observed
te_promote_versions
TDQS
Each tool targets a distinct resource (nodes, versions, policy tests, promotions, status) with clear actions (get, list, promote). The generic te_api_request is a fallback for uncovered endpoints, not overlapping with specific tools.
All tools use the consistent 'te_verb_noun' pattern in snake_case, with verbs like get, list, promote. No mixing of conventions.
10 tools is well-scoped for a Tripwire Enterprise integration, covering core operations without excess or deficiency.
The toolset covers the main lifecycle (list/get nodes and versions, view policy test results, manage promotions) and the generic API endpoint fills any remaining gaps, ensuring no dead ends.
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
Authenticated MCP server for ClearPolicy policy and compliance workflows.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
111An MCP server that provides access to Testiny projects, test cases and test runs
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Shannon Lite security workflows, enabling configuration, scan orchestration, workspace management, and report reading.111MIT
- FlicenseNot gradedqualityDmaintenanceThis MCP server simplifies interaction with the ConnectWise Manage API through API discovery, execution, and a fast memory system for efficient workflows.20-
- FlicenseAqualityDmaintenanceMCP server for the tastytrade brokerage API, providing tools for account management, market data, and order execution.18-
- AlicenseAqualityAmaintenanceMCP server for interacting with the ThreatLocker Portal API, enabling querying of computers, applications, policies, audit logs, and more through AI assistants.181GPL 3.0
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/askjarv/fim-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server