Softhills

Official MCP server for Softhills 3D/2D Visualization SDKs, API documentation, and code examples.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
93%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,425Tokens (tool definitions)
~736 BTypical response size
Moderate attention impact (1.11% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://ai.softhills.net/mcp"
    }
  }
}

Remote endpoints

https://ai.softhills.net/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_docs(query, product, version, topK)

Search product documentation by keyword. Returns matching document chunks ranked by relevance.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query keywords"
    },
    "product": {
      "type": "string",
      "description": "Filter by product name (optional)"
    },
    "version": {
      "type": "string",
      "description": "Filter by version (optional)"
    },
    "topK": {
      "type": "integer",
      "description": "Max results to return (default 10, max 50)"
    }
  },
  "required": [
    "query"
  ]
}
🟢get_doc(id)

Retrieve the full content of a document by its ID.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Document ID"
    }
  },
  "required": [
    "id"
  ]
}
🟢list_products

List all indexed products and their versions.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_api_list(product, version, namespace, className)

List API classes and methods for a product. Returns structured class/method names with summaries. Use this to explore available APIs.

Input Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "description": "Product name (required)"
    },
    "version": {
      "type": "string",
      "description": "Version (optional, defaults to latest)"
    },
    "namespace": {
      "type": "string",
      "description": "Filter by namespace (optional)"
    },
    "className": {
      "type": "string",
      "description": "Filter by class name (optional)"
    }
  },
  "required": [
    "product"
  ]
}
🟢get_api_detail(product, apiName, version)

Get detailed information about a specific API (class or method). Returns method signatures, parameters, return values, and descriptions.

Input Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "description": "Product name (required)"
    },
    "apiName": {
      "type": "string",
      "description": "Class name or method name to look up (required)"
    },
    "version": {
      "type": "string",
      "description": "Version (optional, defaults to latest)"
    }
  },
  "required": [
    "product",
    "apiName"
  ]
}
🟢get_example(product, query, version, language)

Get code examples for a specific API or feature keyword. Returns code snippets with descriptions.

Input Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "description": "Product name (required)"
    },
    "query": {
      "type": "string",
      "description": "Feature name or keyword (required)"
    },
    "version": {
      "type": "string",
      "description": "Version (optional, defaults to latest)"
    },
    "language": {
      "type": "string",
      "description": "Language filter: csharp, js, python, etc. (optional)"
    }
  },
  "required": [
    "product",
    "query"
  ]
}
🟢get_changelog(product, version, fromVersion, toVersion)

Get version changelog / release notes for a product. Can filter by specific version or version range.

Input Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "description": "Product name (required)"
    },
    "version": {
      "type": "string",
      "description": "Specific version (optional)"
    },
    "fromVersion": {
      "type": "string",
      "description": "Range start version (optional)"
    },
    "toVersion": {
      "type": "string",
      "description": "Range end version (optional)"
    }
  },
  "required": [
    "product"
  ]
}
🟢list_sections(documentId)

Get the table of contents / section structure of a document without loading full content. Useful for navigating large documents.

Input Schema

{
  "type": "object",
  "properties": {
    "documentId": {
      "type": "integer",
      "description": "Document ID (required)"
    }
  },
  "required": [
    "documentId"
  ]
}
🟢search_by_tag(tags, product, version)

Search documents by tags or category keywords. Matches against section headings and content.

Input Schema

{
  "type": "object",
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of tag keywords (required)"
    },
    "product": {
      "type": "string",
      "description": "Filter by product name (optional)"
    },
    "version": {
      "type": "string",
      "description": "Filter by version (optional)"
    }
  },
  "required": [
    "tags"
  ]
}
🟢get_related_docs(documentId, topK)

Find documents related to a given document. Returns similar documents ranked by relevance.

Input Schema

{
  "type": "object",
  "properties": {
    "documentId": {
      "type": "integer",
      "description": "Reference document ID (required)"
    },
    "topK": {
      "type": "integer",
      "description": "Max results to return (default 5)"
    }
  },
  "required": [
    "documentId"
  ]
}
🟢get_migration_guide(product, fromVersion, toVersion)

Get migration guide and breaking changes between two versions. Shows what changed and how to adapt code.

Input Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "description": "Product name (required)"
    },
    "fromVersion": {
      "type": "string",
      "description": "Source version (required)"
    },
    "toVersion": {
      "type": "string",
      "description": "Target version (required)"
    }
  },
  "required": [
    "product",
    "fromVersion",
    "toVersion"
  ]
}
🟢get_index_status(product)

Get current indexing status: document counts, chunk counts, and last update time per product/version.

Input Schema

{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "description": "Filter by product name (optional)"
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools