Koskamo

useSignal MCP

A remote MCP server that provides developer tools including QR code generation, JSON diffing, hashing, JWT decoding, cron explanation, timestamp conversion, placeholder images, flowchart creation, form generation, color palette building, and regex testing. It is read-only and stateless, processing inputs in memory without storing data or requiring accounts.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

useSignal MCP logo, by useSignalCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by useSignal
MCP endpoint (Streamable HTTP)
https://www.usesignal.dev/mcp
Vendor documentation

What its tools do

12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

12 of 12 have a description · 12 of 12 declare behavior hints · 0 of 12 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Generate Wi-Fi QR codes
  • Explain cron expressions and list next run times
  • Create placeholder images for mockups
  • Test regular expressions against sample text

Source and maintenance

Community listingRegistry 0.2.0
Maintenance checked

Protocol and capabilities

Server
usesignal 0.2.0
MCP protocol negotiated in check
2025-11-25
Tools
12 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Tools

12 advertised

usesignal_generate_form
Advertised by the server during the last successful anonymous check.
Advertised read-only

Generate an editable form from a JSON object. Returns nested field paths, JSON Schema, HTML, React JSX and config exports. Arrays and nulls use JSON textareas. Values are processed in memory; avoid secrets. To show an interactive preview, call usesignal_open_workbench with this result input.

usesignal_generate_form input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "json"
  ],
  "properties": {
    "json": {
      "type": "string",
      "maxLength": 50000
    },
    "title": {
      "type": "string",
      "default": "Generated form",
      "maxLength": 120
    },
    "overrides": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "path"
        ],
        "properties": {
          "path": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 9
          },
          "type": {
            "enum": [
              "text",
              "email",
              "number",
              "checkbox",
              "textarea"
            ],
            "type": "string"
          },
          "label": {
            "type": "string",
            "maxLength": 120
          },
          "required": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "default": [],
      "maxItems": 100
    }
  },
  "additionalProperties": false
}
usesignal_generate_form annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_generate_colors
Advertised by the server during the last successful anonymous check.
Advertised read-only

Generate light and dark semantic color tokens from a six-digit hex brand color. Returns a shade scale, measured text contrast checks and CSS, JSON and Tailwind exports. This measures listed color pairs only, not whole-page accessibility. Call usesignal_open_workbench with the result input to preview.

usesignal_generate_colors input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "baseColor"
  ],
  "properties": {
    "baseColor": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$"
    }
  },
  "additionalProperties": false
}
usesignal_generate_colors annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_test_regex
Advertised by the server during the last successful anonymous check.
Advertised read-only

Execute a JavaScript regular expression against text and expected match/non-match test cases. Returns indexed matches and capture groups. Flags use JavaScript semantics. Execution times out after 500ms. Call usesignal_open_workbench with result input to highlight matches.

usesignal_test_regex input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "pattern",
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 20000
    },
    "flags": {
      "type": "string",
      "default": "g",
      "maxLength": 8
    },
    "tests": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "text",
          "shouldMatch"
        ],
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 2000
          },
          "shouldMatch": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "default": [],
      "maxItems": 50
    },
    "pattern": {
      "type": "string",
      "maxLength": 1000
    }
  },
  "additionalProperties": false
}
usesignal_test_regex annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_generate_qr
Advertised by the server during the last successful anonymous check.
Advertised read-only

Generate a scannable QR code for a link, text, Wi-Fi network, contact card (vCard), email, SMS, phone number, WhatsApp chat or UPI payment. Returns the encoded payload, an SVG file and a PNG preview image. values by type: url{url}; text{text}; wifi{ssid,password,security:WPA|WEP|nopass,hidden}; vcard{firstName,lastName,phone,email,org,title,website,address}; email{to,subject,body}; sms{phone,message}; phone{phone}; whatsapp{phone,message}; upi{vpa,name,amount,note}.

usesignal_generate_qr input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "type",
    "values"
  ],
  "properties": {
    "dark": {
      "type": "string",
      "default": "#111111",
      "pattern": "^#[0-9a-fA-F]{6}$"
    },
    "type": {
      "enum": [
        "url",
        "text",
        "wifi",
        "upi",
        "vcard",
        "whatsapp",
        "email",
        "sms",
        "phone"
      ],
      "type": "string"
    },
    "light": {
      "$ref": "#/properties/dark",
      "default": "#FFFFFF"
    },
    "margin": {
      "type": "integer",
      "default": 4,
      "maximum": 16,
      "minimum": 0
    },
    "values": {
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "boolean"
          },
          {
            "type": "number"
          }
        ]
      }
    },
    "moduleStyle": {
      "enum": [
        "square",
        "rounded",
        "dots"
      ],
      "type": "string",
      "default": "square"
    },
    "errorCorrection": {
      "enum": [
        "L",
        "M",
        "Q",
        "H"
      ],
      "type": "string",
      "default": "M"
    }
  },
  "additionalProperties": false
}
usesignal_generate_qr annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_encode_decode
Advertised by the server during the last successful anonymous check.
Advertised read-only

Exact text transforms: Base64 encode/decode (UTF-8), URL encode/decode, decode a JWT header and payload with readable exp/iat/nbf dates (the signature is not verified), or hash text with MD5, SHA-1, SHA-256 and SHA-512. Use this instead of computing hashes or Base64 by hand.

usesignal_encode_decode input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "operation",
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 100000
    },
    "operation": {
      "enum": [
        "base64_encode",
        "base64_decode",
        "url_encode",
        "url_decode",
        "jwt_decode",
        "hash"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
usesignal_encode_decode annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_explain_cron
Advertised by the server during the last successful anonymous check.
Advertised read-only

Explain a standard 5-field cron expression (minute hour day-of-month month day-of-week) in plain English and list its next run times in a given time zone, handling daylight saving time.

usesignal_explain_cron input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "expression"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "default": 5,
      "maximum": 20,
      "minimum": 1
    },
    "timeZone": {
      "type": "string",
      "default": "UTC",
      "maxLength": 64,
      "description": "IANA time zone, e.g. Asia/Kolkata or America/New_York"
    },
    "expression": {
      "type": "string",
      "maxLength": 200
    }
  },
  "additionalProperties": false
}
usesignal_explain_cron annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_convert_timestamp
Advertised by the server during the last successful anonymous check.
Advertised read-only

Convert a Unix timestamp (seconds or milliseconds) or an ISO 8601 date into ISO, UTC, epoch seconds/milliseconds, a relative time and the local time in a given time zone.

usesignal_convert_timestamp input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "value"
  ],
  "properties": {
    "value": {
      "type": "string",
      "maxLength": 100
    },
    "timeZone": {
      "type": "string",
      "default": "UTC",
      "maxLength": 64,
      "description": "IANA time zone, e.g. Asia/Kolkata or America/New_York"
    }
  },
  "additionalProperties": false
}
usesignal_convert_timestamp annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_diff_json
Advertised by the server during the last successful anonymous check.
Advertised read-only

Compare two JSON documents structurally and list every added, removed and changed value with its JSONPath. Numbers compare exactly. Arrays match by content by default, so an inserted item shows as one addition; use arrays:"position" to compare index by index.

usesignal_diff_json input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "left",
    "right"
  ],
  "properties": {
    "left": {
      "type": "string",
      "maxLength": 200000
    },
    "right": {
      "type": "string",
      "maxLength": 200000
    },
    "arrays": {
      "enum": [
        "content",
        "position"
      ],
      "type": "string",
      "default": "content"
    }
  },
  "additionalProperties": false
}
usesignal_diff_json annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_format_json
Advertised by the server during the last successful anonymous check.
Advertised read-only

Validate, pretty-print or minify JSON, optionally sorting keys. Invalid JSON reports the exact line and column; with repair (default on) it fixes common problems such as trailing commas, single quotes, comments and unquoted keys, and lists each fix.

usesignal_format_json input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "json"
  ],
  "properties": {
    "json": {
      "type": "string",
      "maxLength": 200000
    },
    "mode": {
      "enum": [
        "format",
        "minify"
      ],
      "type": "string",
      "default": "format"
    },
    "indent": {
      "enum": [
        "2",
        "4",
        "tab"
      ],
      "type": "string",
      "default": "2"
    },
    "repair": {
      "type": "boolean",
      "default": true
    },
    "sortKeys": {
      "type": "boolean",
      "default": false
    }
  },
  "additionalProperties": false
}
usesignal_format_json annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_placeholder_image
Advertised by the server during the last successful anonymous check.
Advertised read-only

Create a placeholder image URL (served by usesignal.dev) plus HTML, Markdown and CSS snippets, for mockups, prototypes, seed data and layouts. Width and height up to 4000 px.

usesignal_placeholder_image input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "width",
    "height"
  ],
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 120
    },
    "color": {
      "$ref": "#/properties/background"
    },
    "style": {
      "enum": [
        "minimal",
        "grid",
        "gradient",
        "dark",
        "glass"
      ],
      "type": "string",
      "default": "minimal"
    },
    "width": {
      "type": "integer",
      "maximum": 4000,
      "minimum": 1
    },
    "height": {
      "type": "integer",
      "maximum": 4000,
      "minimum": 1
    },
    "radius": {
      "type": "integer",
      "maximum": 999,
      "minimum": 0
    },
    "pattern": {
      "enum": [
        "plain",
        "grid",
        "diagonal",
        "dots",
        "minimal"
      ],
      "type": "string"
    },
    "background": {
      "type": "string",
      "pattern": "^#[0-9a-fA-F]{6}$"
    }
  },
  "additionalProperties": false
}
usesignal_placeholder_image annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_flowchart
Advertised by the server during the last successful anonymous check.
Advertised read-only

Turn JavaScript/TypeScript code, arrow steps or Mermaid-style arrows into a flowchart, returned as Mermaid source and an SVG diagram. Steps mode uses one flow per line: "Start -> Validate -> Save" and branches like "Validate -- No --> Show error".

usesignal_flowchart input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "mode",
    "input"
  ],
  "properties": {
    "mode": {
      "enum": [
        "code",
        "steps",
        "mermaid"
      ],
      "type": "string"
    },
    "input": {
      "type": "string",
      "maxLength": 20000
    },
    "direction": {
      "enum": [
        "vertical",
        "horizontal"
      ],
      "type": "string",
      "default": "vertical"
    }
  },
  "additionalProperties": false
}
usesignal_flowchart annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
usesignal_open_workbench — Open useSignal workbench
Advertised by the server during the last successful anonymous check.
Advertised read-only

Show the editable useSignal UI. First call a useSignal data tool, then pass its returned input and matching tool name. Recomputes from validated inputs; no shared state.

usesignal_open_workbench input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "tool",
    "input"
  ],
  "properties": {
    "tool": {
      "enum": [
        "usesignal_generate_form",
        "usesignal_generate_colors",
        "usesignal_test_regex",
        "usesignal_generate_qr",
        "usesignal_encode_decode",
        "usesignal_explain_cron",
        "usesignal_convert_timestamp",
        "usesignal_diff_json",
        "usesignal_format_json",
        "usesignal_placeholder_image",
        "usesignal_flowchart"
      ],
      "type": "string"
    },
    "input": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "additionalProperties": false
}
usesignal_open_workbench annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

useSignal workbench

Advertised by the server during the last successful anonymous check.

useSignal workbench URI
ui://usesignal/workbench.html

MIME type: text/html;profile=mcp-app

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
690 ms
95th percentile latency
690 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 690 ms · metadata changed · 12 tool(s), 1 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http usesignal-mcp https://www.usesignal.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add usesignal-mcp --url https://www.usesignal.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable usesignal-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "usesignal-mcp": {
      "url": "https://www.usesignal.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "usesignal-mcp": {
      "type": "streamableHttp",
      "url": "https://www.usesignal.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start usesignal-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "usesignal-mcp": {
      "type": "http",
      "url": "https://www.usesignal.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http usesignal-mcp https://www.usesignal.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://www.usesignal.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "usesignal-mcp": {
      "serverUrl": "https://www.usesignal.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like useSignal MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.