Skip to main content
Glama
iflow-mcp

SentryFrogg MCP Server

by iflow-mcp

SentryFrogg MCP Server v4.2.0

Document Profile

Field

Value

Product

SentryFrogg MCP Server

Version

4.2.0

Runtime

Node.js ≥ 16

Interfaces

Model Context Protocol (PostgreSQL · SSH · HTTP)

License

MIT

Related MCP server: cryptofort

Executive Synopsis

SentryFrogg MCP Server supplies a governed command plane for MCP-compatible agents that operate data platforms, remote shells and web services. The implementation prioritises deterministic behaviour, encrypted credential storage and prescriptive workflows so that autonomous agents can execute infrastructure tasks with enterprise auditability.

Functional Surface

Capability

Detail

PostgreSQL control

Parameterised SQL, catalog discovery, CRUD helpers, mutual TLS, connection profiling.

SSH execution

Serial command dispatch per profile, password/key authentication, reachability diagnostics.

HTTP access

REST verbs with JSON payloads, health checks, programmable headers and bearer tokens.

Secret vault

AES-256 encrypted profiles persisted in profiles.json with managed key material.

Telemetry

Tool-level statistics via getStats() for integration with monitoring stacks.

System Components

Component

Scope

sentryfrogg_server.cjs

MCP entry point, tool catalogue, lifecycle supervision.

src/bootstrap/ServiceBootstrap.cjs

Service registration, dependency wiring, resource cleanup.

src/managers/PostgreSQLManager.cjs

SQL execution, profile validation, TLS configuration, pool management.

src/managers/SSHManager.cjs

SSH sessions, sequential execution enforcement, profile hygiene.

src/managers/APIManager.cjs

HTTP invocation, header synthesis, response shaping.

src/services/ProfileService.cjs

Encrypted persistence and retrieval of profile objects.

src/services/Security.cjs

Key lifecycle, cryptographic primitives, payload size guards.

src/services/Validation.cjs

Canonical validation for incoming payloads.

MCP Tools

mcp_psql_manager

Attribute

Specification

Required flow

setup_profile → downstream action using same profile_name.

Actions

setup_profile, list_profiles, quick_query, show_tables, describe_table, sample_data, insert_data, update_data, delete_data, database_info.

Credentials

Either discrete fields (host, port, username, password, database) or connection_url.

TLS options

ssl_mode, ssl_ca, ssl_cert, ssl_key, ssl_passphrase, ssl_servername, ssl_reject_unauthorized; omitted values reuse stored secrets.

Query rules

quick_query injects LIMIT 100 when absent; bind variables supplied via params array ($1, $2, ...).

Response format

JSON with success, rows, rowCount, fields, command; failures raise MCP internal errors.

Rejection triggers

Missing profile, malformed SQL, payload limits exceeded, invalid TLS configuration.

mcp_ssh_manager

Attribute

Specification

Required flow

setup_profile (password or PEM private_key, optional passphrase) → operational action.

Actions

setup_profile, list_profiles, execute, system_info, check_host.

Execution model

Commands trimmed and length-limited; pipes/redirects permitted; per-profile execution is strictly sequential.

Outputs

JSON containing success, stdout, stderr, exitCode, durationMs; errors propagate as MCP internal errors.

Security posture

Secrets encrypted at rest; no templating—agents must supply fully qualified commands.

mcp_api_client

Attribute

Specification

Actions

get, post, put, delete, patch, check_api.

Inputs

url (required), data (JSON body for mutating verbs), headers (string map), auth_token (prefixed into Authorization unless already set).

Behaviour

Local and private addresses allowed; HTTP status/body returned in structured JSON; transport or parsing failures emit MCP internal errors.

Profile Lifecycle

  1. Invoke setup_profile to persist credentials and TLS artefacts; secrets encrypt with AES-256 using .mcp_profiles.key (0600 permissions).

  2. Reference the same profile_name for subsequent operations; omitted sensitive fields inherit stored encrypted values.

  3. Rotate credentials by reissuing setup_profile; the latest payload supersedes previous entries.

  4. Audit existing profiles via list_profiles; responses never disclose secrets.

  5. Retire unused profiles by editing profiles.json under change control.

TLS Configuration Guidance

  • Prefer embedding sslmode directives in connection_url; explicit payload fields override URL parameters.

  • Keep ssl_reject_unauthorized at true unless communicating with trusted self-signed endpoints.

  • Provide ssl_servername whenever certificate CN/SAN mismatches the host.

  • Supply PEM blocks as single-line strings using \n escape sequences; leading/trailing spaces are disallowed.

  • ssl_passphrase must be non-empty if provided; omit otherwise.

Installation and Operations

Task

Command

Clone and install

git clone https://github.com/yourusername/sentryfrogg-mcp.git && cd sentryfrogg-mcp && npm install

Syntax check

npm run check

Launch (stdio)

node sentryfrogg_server.cjs

Update dependencies

npm install --package-lock-only && npm audit fix --only=prod (subject to governance)

Reset profile store

Remove profiles.json after confirming backups

Security & Compliance

  • Encryption key lifecycle: .mcp_profiles.key generated on first run; override via ENCRYPTION_KEY for coordinated environments.

  • Secret exposure: MCP responses never include decrypted values; rotation requires explicit setup_profile.

  • Input governance: SQL statements, SSH commands and HTTP payloads are length-limited; oversized inputs are rejected pre-execution.

  • Audit trail: stderr logging captures timestamped events per tool to support collection by SIEM platforms.

  • Dependency governance: locked versions of pg, ssh2, node-fetch, @modelcontextprotocol/sdk; monitor advisories for patch cadence.

Troubleshooting Matrix

Symptom

Diagnostic Actions

Remediation

PostgreSQL TLS failure

Inspect ssl_mode, ssl_servername, certificate chain, Postgres logs.

Update TLS materials; rerun setup_profile.

SSH command hang

Validate command length, ensure non-interactive execution, check remote prompts.

Adjust command or script; rerun setup_profile if credentials changed.

HTTP error response

Review returned status/body, verify headers and auth_token.

Correct payload; retry request.

Missing profile

Execute list_profiles to confirm presence; ensure consistent profile_name.

Recreate via setup_profile.

Change History Reference

Consult CHANGELOG.md for a dated record of functional and operational updates, including TLS support and renaming.

Contribution & Support

  • Submit changes through pull requests accompanied by verification evidence (npm run check).

  • Never commit .mcp_profiles.key or environment-specific secrets.

  • Use maintainer contact information in package.json for escalation or integration assistance.

Available Tools

3 tools
mcp_api_clientA

HTTP caller. Fields: action ∈ {get, post, put, delete, patch, check_api}, url (required), data (JSON body for mutating verbs), headers (string map), auth_token (prefixed into Authorization unless headers.Authorization supplied). Local URLs allowed. Responses are structured results or MCP errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
urlNo
dataNo
headersNo
auth_tokenNo

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors: auth_token is prefixed into Authorization header unless overridden, local URLs are allowed, and responses are structured results or MCP errors. However, it lacks disclosures about potential risks (e.g., local URL access), rate limits, or idempotency of actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: two sentences that front-load the purpose ('HTTP caller') and efficiently explain all parameters and behaviors without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all parameters and key behaviors, and mentions response format ('structured results or MCP errors'). However, without an output schema, more detail on response structure would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining all five parameters: action enum, url requirement, data for mutating verbs, headers as string map, and auth_token behavior. This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is an HTTP caller, lists all six supported actions (get, post, put, delete, patch, check_api), and specifies that it makes HTTP requests. It is distinct from sibling tools (database and SSH managers) by focusing on HTTP calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for making HTTP requests by explicitly detailing action verbs and parameters. However, it does not provide explicit when-to-use or when-not-to-use guidance, though the sibling tools are sufficiently different that confusion is unlikely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_psql_managerB

PostgreSQL toolchain. Flow: setup_profile → action. setup_profile accepts credentials or connection_url plus optional TLS (ssl_mode, ssl_ca, ssl_cert, ssl_key, ssl_passphrase, ssl_servername, ssl_reject_unauthorized); secrets stored encrypted. Subsequent calls reuse profile_name: quick_query (adds LIMIT 100 if absent; supports params array for $ placeholders), show_tables, describe_table, sample_data, database_info, insert_data, update_data, delete_data, list_profiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
profile_nameNoProfile name (defaults to 'default')
connection_urlNopostgres://user:pass@host:port/db url
hostNo
portNo
usernameNo
passwordNo
databaseNo
sslNo
ssl_modeNodisable | require | verify-ca | verify-full
ssl_caNoPEM encoded certificate authority chain
ssl_certNoPEM encoded client certificate
ssl_keyNoPEM encoded client private key
ssl_passphraseNoOptional passphrase for the private key
ssl_servernameNoOverride servername for TLS verification
ssl_reject_unauthorizedNoSet to false to trust self-signed certificates
sqlNo
paramsNo
table_nameNo
dataNo
whereNo
limitNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It includes key details like secret encryption and the automatic LIMIT 100 addition in quick_query. However, it does not disclose the nature of mutating actions (insert, update, delete) as potentially destructive or reversible, nor does it mention error handling or concurrency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph that front-loads the key flow but then delves into setup_profile parameter details. It could be more structured (e.g., bullet points for actions) without being overly verbose. It is concise but at the cost of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (22 parameters, many actions, no output schema), the description provides a reasonable overview including the flow and key behaviors. However, it lacks information on return values for each action and has gaps in parameter explanations, making it adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the input schema for some parameters, such as the params array for $ placeholders and the automatic LIMIT in quick_query. However, with only 41% schema description coverage, many parameters remain unexplained. The description partially compensates but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a PostgreSQL toolchain and lists the specific actions available, distinguishing it from sibling tools (API client, SSH manager) by domain. The purpose is well-defined with a clear flow: setup_profile then action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the required flow (setup_profile first), which implies usage guidance, but does not explicitly state when not to use this tool or provide comparisons to alternatives. For example, it does not advise against using destructive actions without caution.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_ssh_managerA

SSH executor. setup_profile stores host credentials (password or PEM private_key with optional passphrase); data encrypted. list_profiles enumerates profiles, system_info returns collected facts, check_host validates reachability, execute runs one trimmed command (pipes/redirects allowed) sequentially per profile; no concurrent runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
profile_nameNoProfile name (defaults to 'default')
hostNo
portNo
usernameNo
passwordNo
private_keyNoPEM encoded private key
passphraseNo
ready_timeoutNo
keepalive_intervalNo
commandNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors: data encryption for credentials, sequential per-profile execution, and no concurrency. With no annotations provided, this is adequate but lacks details on error handling, return values, or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise but poorly structured, appearing as a run-on sentence listing actions. It could be improved with bullet points or clearer separation of action descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, no output schema), the description lacks essential details about host/port/timeout parameters and return values. It covers actions but not the full parameter context needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (18%). The description adds meaning for a few parameters (password, private_key, passphrase in setup_profile) but fails to describe host, port, username, timeouts, etc. It does not sufficiently compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is an 'SSH executor' and lists specific actions (setup_profile, list_profiles, execute, system_info, check_host), distinguishing it from sibling tools mcp_api_client and mcp_psql_manager which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for each action, including constraints like sequential execution and no concurrent runs. However, it does not explicitly state when to use this tool versus alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a completely distinct domain: HTTP API calls, PostgreSQL database management, and SSH remote execution. There is no overlap in purpose or functionality, so an agent can clearly differentiate them.

Naming Consistency5/5

All tool names follow the pattern 'mcp_<domain>_<role>' (e.g., mcp_api_client, mcp_psql_manager, mcp_ssh_manager), using consistent snake_case and a descriptive prefix. The variation between 'client' and 'manager' is appropriate for their roles.

Tool Count3/5

With only three tools, the server covers three broad areas (API, database, SSH). While each tool is rich in sub-actions, the raw count is at the low end of the range, making it borderline but acceptable for a general-purpose server.

Completeness4/5

Within the declared domains, the tools provide comprehensive coverage: HTTP client supports all methods, PostgreSQL manager includes full CRUD and schema inspection, SSH manager handles command execution and system info. Minor gaps like bulk operations exist but do not hinder core workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables users to define and run MCP tools using declarative YAML configs with built-in trust enforcement, credential brokering, and tamper-evident audit logging.
    14
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Encrypted-at-rest credential vault with MCP server for agent credential lookup and management.
    13
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables governing tenant-aware MCP tools with policy enforcement, scoped access, human approval workflows, and tamper-evident audit logging.

Latest Blog Posts

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/iflow-mcp/SentryFrogg-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server