npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

simple-dynamsoft-mcp

v7.1.1

Published

MCP server for Dynamsoft SDKs - Capture Vision, Barcode Reader (Mobile/Python/Web), Dynamic Web TWAIN, and Document Viewer. Provides documentation, code snippets, and API guidance.

Readme

Dynamsoft MCP Server

MCP server that helps AI assistants generate accurate code and guidance for Dynamsoft SDKs.

Supported products:

  • Dynamsoft Capture Vision (DCV)
  • Dynamsoft Barcode Reader (DBR): mobile, web, server/desktop
  • Dynamic Web TWAIN (DWT)
  • Dynamsoft Document Viewer (DDV)

Default transport is stdio. Native Streamable HTTP is also supported at /mcp.

Demo Video

https://github.com/user-attachments/assets/cc1c5f4b-1461-4462-897a-75abc20d62a6

Two Supported Usage Scenarios

This project is intentionally documented for two real-world usage paths:

  1. Local usage with npx -y simple-dynamsoft-mcp@latest and minimal config
  2. HTTP deployment on Ubuntu with full data + prebuilt indexes + Gemini embeddings

If you need deep operator/dev settings, see AGENTS.md and .env.example.

Scenario 1: Local Usage (Recommended Default)

For most users, this is enough.

Command:

npx -y simple-dynamsoft-mcp@latest

Notes:

  • No explicit environment variables are required for the default path.
  • Default profile is lightweight (lite) and avoids local embedding model downloads.
  • If local data is missing, the package can bootstrap pinned data from cache/download sources.

Scenario 2: Ubuntu HTTP Deployment (Full Data + Gemini)

Use this when you host the server remotely and expose MCP over HTTP.

1) Prepare host

sudo apt update
sudo apt install -y git curl
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node -v
npm -v

2) Clone and install

git clone --recurse-submodules https://github.com/yushulx/simple-dynamsoft-mcp.git
cd simple-dynamsoft-mcp
npm ci

If you did not clone with submodules:

npm run data:bootstrap
npm run data:sync

3) Configure environment

Create .env in repo root:

GEMINI_API_KEY=your_key_here

MCP_PROFILE=semantic-gemini
RAG_PROVIDER=gemini
RAG_FALLBACK=lexical

MCP_DATA_HYDRATION_MODE=eager
MCP_DATA_AUTO_DOWNLOAD=true
MCP_DATA_REFRESH_ON_START=false

RAG_PREBUILT_INDEX_AUTO_DOWNLOAD=true

MCP_LOG_LEVEL=info

4) Start HTTP server

node src/index.js --transport=http --host=0.0.0.0 --port=3333

Endpoint:

  • http://<server-ip>:3333/mcp

5) Optional: systemd service

Example /etc/systemd/system/simple-dynamsoft-mcp.service:

[Unit]
Description=Simple Dynamsoft MCP Server
After=network.target

[Service]
Type=simple
WorkingDirectory=/opt/simple-dynamsoft-mcp
ExecStart=/usr/bin/node /opt/simple-dynamsoft-mcp/src/index.js --transport=http --host=0.0.0.0 --port=3333
EnvironmentFile=/opt/simple-dynamsoft-mcp/.env
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

Enable and start:

sudo systemctl daemon-reload
sudo systemctl enable simple-dynamsoft-mcp
sudo systemctl start simple-dynamsoft-mcp
sudo systemctl status simple-dynamsoft-mcp

MCP Client Configuration

Use one of the following client configs.

OpenCode

Location:

  • macOS: ~/.config/opencode/opencode.json
  • Windows: %USERPROFILE%\.config\opencode\opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dynamsoft": {
      "type": "local",
      "command": ["npx", "-y", "simple-dynamsoft-mcp@latest"]
    }
  }
}

Claude Desktop

Location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "dynamsoft": {
      "command": "npx",
      "args": ["-y", "simple-dynamsoft-mcp@latest"]
    }
  }
}

VS Code with GitHub Copilot

Global location:

  • macOS: ~/Library/Application Support/Code/User/mcp.json
  • Windows: %APPDATA%\Code\User\mcp.json
{
  "servers": {
    "dynamsoft": {
      "command": "npx",
      "args": ["-y", "simple-dynamsoft-mcp@latest"]
    }
  }
}

Workspace alternative: .vscode/mcp.json

Cursor

Location:

  • macOS: ~/.cursor/mcp.json
  • Windows: %USERPROFILE%\.cursor\mcp.json
{
  "mcpServers": {
    "dynamsoft": {
      "command": "npx",
      "args": ["-y", "simple-dynamsoft-mcp@latest"]
    }
  }
}

Windsurf

Location:

  • macOS: ~/.codeium/windsurf/mcp_config.json
  • Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
{
  "mcpServers": {
    "dynamsoft": {
      "command": "npx",
      "args": ["-y", "simple-dynamsoft-mcp@latest"]
    }
  }
}

Available Tools

The server exposes this minimal tool surface:

  • get_index -- compact product/version/sample index with selection guidance
  • search -- semantic search across docs and samples (also accepts exact sample IDs)
  • list_samples -- browse available samples for a product/edition/platform
  • resolve_version -- resolve current version for a product/edition/platform
  • get_quickstart -- opinionated quickstart: picks a sample by scenario, returns code + install instructions
  • get_sample_files -- get full project files for a known sample (discovered via list_samples or search)

Companion: Dynamsoft SDK Skills

For AI agents that support skills (Claude Code, OpenCode, Codex), install dynamsoft-sdk-skills for guided integration workflows:

npx dynamsoft-sdk-skills install --all
  • Skills provide integration patterns, gotchas, and decision trees (loaded into agent context)
  • MCP Server provides runtime tools: version resolution, doc search, sample browsing, and retrieval of full sample project files

Both work independently, but together the skills guide agents to use MCP tools at the right moments.

Quick Troubleshooting

  • If startup says data is incomplete, run npm run data:bootstrap and npm run data:sync in clone-based deployments.
  • For HTTP deployments, check service logs first:
    • journalctl -u simple-dynamsoft-mcp -f
  • For Gemini mode, confirm GEMINI_API_KEY is present in service environment.
  • Structured startup logs include [data], [transport], and [rag] event lines.

Advanced Configuration And Operator Docs

Advanced settings, CI/runbook details, and maintenance workflows live in:

  • AGENTS.md
  • .env.example

License

MIT