Server definition
- Hash
- sha256:6f6ca011aae3f3aa07dffb0bfb5a456c6b7c9a3e8134533803c8307983281ea9
- What it is
- What a remote MCP server returned when asked what it offers: 9 tools
The blob, as servednamed by its sha256
{
"instructions": "Generate diagrams using multiple rendering engines.\n\n**mingrammer/diagrams** (cloud architecture): Use search_nodes to find components by keyword (returns import paths), or browse with list_providers -> list_services -> list_nodes. Read the diagrams://reference/diagram, diagrams://reference/edge, and diagrams://reference/cluster resources for constructor options and usage examples. Then render_diagram to produce images.\n\n**Mermaid** (flowcharts, sequence, class, ER, state, Gantt): Read diagrams://reference/mermaid for syntax. Then render_mermaid with a definition string.\n\n**PlantUML** (sequence, class, component, activity, state, deployment): Read diagrams://reference/plantuml for syntax. Then render_plantuml with a definition string.\n\n**Cross-provider equivalence**: Use find_equivalent to find equivalent services across providers (e.g. find_equivalent('EC2', 'gcp')), or list_categories to see all mapped infrastructure roles.\n\n**Tool selection**: Use render_diagram for cloud architecture with real provider icons (AWS, GCP, Azure, K8s, on-prem). Use render_mermaid for flowcharts, sequence diagrams, ER diagrams, and Gantt charts. Use render_plantuml for UML-heavy diagrams (class, component, deployment).\n\n**Workflow**: Always use search_nodes to verify node names and get import paths before writing render_diagram code. Invalid imports are the most common error.\n\n**Output options**: All render tools support `format` (png, svg, pdf — PlantUML: png/svg only) and `download_link` (returns a temporary URL instead of inline image data).",
"tools": [
{
"description": "Find cross-provider equivalents for a diagram node by infrastructure role.\n\nGiven a node name (e.g. 'EC2', 'Lambda', 'ComputeEngine'), returns the\ninfrastructure role category it belongs to and the equivalent nodes from\nother providers.\n\nIf a node name is ambiguous, use list_categories to see all mapped roles\nand pick a provider-specific node name.\n\nArgs:\n node: Node class name to look up (case-insensitive, e.g. 'EC2', 'lambda').\n target_provider: Optional provider to filter equivalents to\n (e.g. 'gcp', 'azure', 'aws'). If omitted, all equivalents\n across all other providers are returned.\n\nReturns:\n A dict with keys:\n category (str): Infrastructure role category name.\n description (str): Human-readable description of the category.\n source (dict): The matched node with keys node, provider, service, import.\n equivalents (list[dict]): Equivalent nodes, each with keys\n node, provider, service, import.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"node": {
"type": "string"
},
"target_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"node"
],
"type": "object"
},
"name": "find_equivalent",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "List all infrastructure role categories with their mapped nodes.\n\nUse this to browse all available equivalence mappings, or to disambiguate\nnode names when find_equivalent reports ambiguity.\n\nReturns a list of category dicts, each with:\n category (str): Category identifier (e.g. 'virtual_machine').\n description (str): Human-readable description.\n providers (list[str]): Providers covered by this category.\n nodes (dict): Mapping of provider → list of node names in that category.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_categories",
"outputSchema": {
"description": "Generic wrapper for non-object return types.",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List available node classes for a provider.service combo.\n\nArgs:\n provider: Provider name (e.g. 'aws', 'gcp', 'k8s').\n service: Service category (e.g. 'compute', 'database', 'network').\n\nReturns:\n List of nodes with keys: name, import, alias_of (optional).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"provider": {
"type": "string"
},
"service": {
"type": "string"
}
},
"required": [
"provider",
"service"
],
"type": "object"
},
"name": "list_nodes",
"outputSchema": {
"description": "Generic wrapper for non-object return types.",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List all available diagram providers (aws, gcp, azure, k8s, onprem, etc.).\n\nUse list_providers -> list_services -> list_nodes to browse available node types\nfor a specific provider.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_providers",
"outputSchema": {
"description": "Generic wrapper for non-object return types.",
"properties": {
"result": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List service categories for a provider (e.g. 'aws' -> ['compute', 'database', ...]).\n\nArgs:\n provider: Provider name from list_providers (e.g. 'aws', 'gcp', 'k8s').",
"inputSchema": {
"additionalProperties": false,
"properties": {
"provider": {
"type": "string"
}
},
"required": [
"provider"
],
"type": "object"
},
"name": "list_services",
"outputSchema": {
"description": "Generic wrapper for non-object return types.",
"properties": {
"result": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Render a mingrammer/diagrams Python snippet to PNG and return the image.\n\nThe code must be a complete Python script using `from diagrams import ...` imports\nand a `with Diagram(...)` context manager block.\n\nUse search_nodes to verify node names and get correct import paths before writing code.\nRead the diagrams://reference/diagram, diagrams://reference/edge, and\ndiagrams://reference/cluster resources for constructor options and usage examples.\n\nArgs:\n code: Full Python code using the diagrams library.\n filename: Output filename without extension.\n format: Output format — ``\"png\"`` (default), ``\"svg\"``, or ``\"pdf\"``.\n download_link: If True, return a temporary download URL path\n (/images/{token}) that expires after 15 minutes; if\n False, return inline image bytes. Defaults to True\n (URL) — set ``DIAGRAMS_INLINE_DEFAULT=true`` on the\n server to flip the default. SVG/PDF and PNGs larger\n than the inline limit always use a download link.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"type": "string"
},
"download_link": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null
},
"filename": {
"default": "diagram",
"type": "string"
},
"format": {
"default": "png",
"enum": [
"png",
"svg",
"pdf"
],
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "render_diagram",
"outputSchema": null
},
{
"description": "Render a Mermaid diagram definition and return the image with metadata.\n\nThe definition should be valid Mermaid syntax (e.g. flowchart, sequence,\nclass, ER, state, or Gantt diagram).\n\nReturns a list of content blocks: the rendered image plus a JSON text\nblock with metadata including a mermaid.live edit link for opening the\ndiagram in a browser editor.\n\nArgs:\n definition: Mermaid diagram definition text.\n filename: Output filename without extension.\n format: Output format — ``\"png\"`` (default), ``\"svg\"``, or ``\"pdf\"``.\n download_link: If True, return a temporary download URL path\n (/images/{token}) that expires after 15 minutes; if\n False, return inline image bytes. Defaults to True\n (URL) — set ``DIAGRAMS_INLINE_DEFAULT=true`` on the\n server to flip the default. SVG/PDF and PNGs larger\n than the inline limit always use a download link.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"definition": {
"type": "string"
},
"download_link": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null
},
"filename": {
"default": "diagram",
"type": "string"
},
"format": {
"default": "png",
"enum": [
"png",
"svg",
"pdf"
],
"type": "string"
}
},
"required": [
"definition"
],
"type": "object"
},
"name": "render_mermaid",
"outputSchema": null
},
{
"description": "Render a PlantUML diagram definition and return the image.\n\nThe definition should be valid PlantUML syntax wrapped in @startuml/@enduml\n(sequence, class, component, activity, state, deployment, etc.).\n\nArgs:\n definition: PlantUML diagram definition text.\n filename: Output filename without extension.\n format: Output format — ``\"png\"`` (default) or ``\"svg\"``.\n PDF is not supported (requires Batik/FOP).\n download_link: If True, return a temporary download URL path\n (/images/{token}) that expires after 15 minutes; if\n False, return inline image bytes. Defaults to True\n (URL) — set ``DIAGRAMS_INLINE_DEFAULT=true`` on the\n server to flip the default. SVG and PNGs larger than\n the inline limit always use a download link.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"definition": {
"type": "string"
},
"download_link": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null
},
"filename": {
"default": "diagram",
"type": "string"
},
"format": {
"default": "png",
"enum": [
"png",
"svg",
"pdf"
],
"type": "string"
}
},
"required": [
"definition"
],
"type": "object"
},
"name": "render_plantuml",
"outputSchema": null
},
{
"description": "Search for diagram nodes by keyword across all providers and services.\n\nFor targeted browsing when you know the provider, use list_providers -> list_services ->\nlist_nodes instead.\n\nArgs:\n query: Search term (case-insensitive substring match).\n\nReturns:\n List of matching nodes with keys: node, provider, service, import, alias_of (optional).\n Sorted by relevance: exact match first, then prefix, then substring.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_nodes",
"outputSchema": {
"description": "Generic wrapper for non-object return types.",
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:6f6ca011aae3f3aa07dffb0bfb5a456c6b7c9a3e8134533803c8307983281ea9 | sha256sum