Mcp Mindport — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Mindport (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A high-performance Model Context Protocol (MCP) server built in TypeScript/Node.js that provides optimized storage and search capabilities for AI systems. Designed for seamless integration with Claude Desktop and other MCP clients.
npm install -g mindport-mcp
mindport --helpgit clone https://github.com/mindport-ai/mcp-mindport.git
cd mcp-mindport
npm install
npm run build# Install globally
npm install -g mindport-mcp
# Or run with npx
npx mindport-mcp
# Start web interface
npx mindport-mcp --webThe installation automatically:
# Install dependencies
npm install
# Start MCP server (for Claude Desktop)
npm run dev
# Start web interface (in new terminal)
npm run web
# Visit http://localhost:3001# Build for production
npm run build
# Start production server
npm start
# Start web interface
npm run web:start# Run comprehensive test suite
npm test
# Run tests once
npm run test:run
# Run with coverage
npm run test:coverage# Prepare for release
npm run build
npm run test:run
# Publish to NPM
npm publish
# Install globally from NPM
npm install -g mindport-mcp# Build Docker image
docker build -t mindport-mcp .
# Run in container
docker run -d -p 3001:3001 \
-v ~/.config/mindport:/root/.config/mindport \
mindport-mcp# Install globally
npm install -g mindport-mcp
# Create systemd service (Linux)
sudo tee /etc/systemd/system/mindport.service << EOF
[Unit]
Description=MindPort MCP Server
After=network.target
[Service]
Type=simple
User=mindport
WorkingDirectory=/opt/mindport
ExecStart=/usr/bin/node /usr/local/bin/mindport-mcp
Restart=always
Environment=NODE_ENV=production
Environment=MCP_MINDPORT_LOG=/var/log/mindport.log
[Install]
WantedBy=multi-user.target
EOF
# Enable and start service
sudo systemctl enable mindport
sudo systemctl start mindportThe server automatically creates configuration at ~/.config/mindport/config.yaml:
server:
host: "localhost"
port: 8080
storage:
path: "~/.config/mindport/data/storage.db"
search:
index_path: "~/.config/mindport/data/search"
domain:
default_domain: "default"# Disable logging (recommended for MCP)
export MCP_MINDPORT_LOG=discard
# Set custom domain
export MCP_MINDPORT_DOMAIN=my-project
# Custom storage path
export MCP_MINDPORT_STORE_PATH=/path/to/storage.dbAdd to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"mindport": {
"command": "npx",
"args": ["mindport-mcp"],
"env": {
"MCP_MINDPORT_LOG": "discard"
}
}
}
}Restart Claude Desktop to activate MindPort.
#### store_resource Store content with metadata and tags
{
id: "api-docs-v1",
name: "API Documentation",
description: "REST API endpoints and authentication",
content: "GET /users - Retrieve users...",
tags: ["api", "documentation", "rest"],
mimeType: "text/markdown"
}#### get_resource Retrieve specific resource by ID
{ id: "api-docs-v1" }#### list_resources List resources in current domain
{ limit: 20, offset: 0 }#### search_resources Fast, token-efficient fuzzy search
{
query: "API authentication methods",
limit: 10
}#### advanced_search Complex queries with tag filtering
{
query: "database design",
tags: ["sql", "performance"],
exactTags: true
}#### grep Regex pattern matching (like ripgrep)
{ pattern: "function\\s+\\w+\\(" }#### find Find resources by name patterns
{ pattern: "^API.*" }#### list_domains List all available domains
{}#### create_domain Create new domain context
{
name: "frontend-project",
description: "Frontend development resources"
}#### switch_domain Change current domain
{ domain: "frontend-project" }#### domain_stats Get domain statistics and top tags
{ domain: "frontend-project" } // optional#### store_prompt Store reusable prompt templates
{
id: "code-review",
name: "Code Review Prompt",
template: "Review this {{language}} code for {{focus}}:\n\n```{{language}}\n{{code}}\n```",
variables: ["language", "focus", "code"]
}#### list_prompts List available prompt templates
{}#### get_prompt Retrieve and render prompts with variables
{
id: "code-review",
variables: {
"language": "TypeScript",
"focus": "performance",
"code": "const result = await fetch('/api');"
}
}┌─────────────────┐
│ Claude Desktop │ (MCP Client)
│ │
└─────────┬───────┘
│ JSON-RPC 2.0 via stdio
│
┌─────────▼───────┐
│ MCP Server │ (TypeScript/Node.js)
│ │
├─────────────────┤
│ Domain Manager │ (Project isolation)
│ │
├─────────────────┤
│ Fuse.js Search │ (Fuzzy + pattern search)
│ │
├─────────────────┤
│ SQLite Storage │ (Resources + prompts)
│ │
└─────────────────┘MindPort is specifically optimized for AI interactions:
# Finds "JavaScript Tutorial" even with typos
search_resources: "javascrpt tutorial"# Find all function definitions
grep: "function\\s+\\w+\\("
# Find resources starting with "API"
find: "^API.*"# Exact tag matching
advanced_search: { query: "auth", tags: ["security"], exactTags: true }
# Partial tag matching
advanced_search: { query: "auth", tags: ["sec"], exactTags: false }Tested with 100+ resources:
Comprehensive test suite with 76 tests covering:
# Run all tests
npm test
# Run specific test suites
npm test storage
npm test search
npm test server
npm test integration# Create project domains
create_domain: { name: "frontend", description: "Frontend code and docs" }
create_domain: { name: "backend", description: "API and database" }
# Switch contexts
switch_domain: { domain: "frontend" }
# Store domain-specific resources
store_resource: {
name: "React Component",
content: "const Button = ...",
tags: ["react", "component"]
}# Store template
store_prompt: {
id: "bug-report",
template: "Bug in {{component}}:\n**Expected:** {{expected}}\n**Actual:** {{actual}}"
}
# Use template
get_prompt: {
id: "bug-report",
variables: {
component: "Login Form",
expected: "User logged in",
actual: "Error 401"
}
}npm run test:runMIT License - see LICENSE file for details.
Built for Claude Desktop | Optimized for AI Workflows | TypeScript + SQLite + Vitest
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.