Surface MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Surface MCP Serverscan this file for malware: ~/Downloads/invoice.pdf"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Surface MCP Server
Model Context Protocol server for Surface. Gives any MCP-compatible AI assistant (Claude, etc.) the ability to scan files, manage accounts, and access SDK/API documentation.
Install
npx -y github:tendrl-inc-labs/surface-mcpnpm clones this repository and builds it from source on install, so there is nothing to publish and nothing stale to serve.
Install by repository, not by name: an unrelated third party owns the name
surface-mcp on npm, and installing that name runs their code.
In an MCP client config:
{
"mcpServers": {
"surface": {
"command": "npx",
"args": ["-y", "github:tendrl-inc-labs/surface-mcp"],
"env": {
"SURFACE_KEY": "${SURFACE_KEY}"
}
}
}
}Related MCP server: AgentAudit
Build from source
git clone https://github.com/tendrl-inc-labs/surface-mcp
cd surface-mcp
npm install
npm run buildConfiguration
Set your API key:
export SURFACE_KEY="sfk_your_token_here"Optional: Local Scanner
Point SURFACE_SCANNER_PATH at the Surface scanner binary to scan files locally. Files never leave your machine — the binary runs on your hardware and reports results to the server.
export SURFACE_SCANNER_PATH="/usr/local/bin/surface-scanner"When this is not set, scan_file uploads to the API instead.
Optional: Custom API URL
Set a custom base URL (defaults to https://app.tendrl.com/surface):
export SURFACE_BASE_URL="http://localhost:9080/api"Usage with Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"surface": {
"command": "node",
"args": ["/path/to/surface/mcp-server/dist/index.js"],
"env": {
"SURFACE_KEY": "sfk_your_token_here"
}
}
}
}With local scanner (files never leave your machine):
{
"mcpServers": {
"surface": {
"command": "node",
"args": ["/path/to/surface/mcp-server/dist/index.js"],
"env": {
"SURFACE_KEY": "sfk_your_token_here",
"SURFACE_SCANNER_PATH": "/usr/local/bin/surface-scanner"
}
}
}
}Usage with Claude Code
Add to your Claude Code settings:
# API mode (uploads to server)
claude mcp add surface node /path/to/surface/mcp-server/dist/index.js -e SURFACE_KEY=sfk_your_token_here
# Local scanner mode (files stay on your machine)
claude mcp add surface node /path/to/surface/mcp-server/dist/index.js -e SURFACE_KEY=sfk_your_token_here -e SURFACE_SCANNER_PATH=/usr/local/bin/surface-scannerTools
Tool | Description |
| Upload and scan a file for malware (accepts absolute file path) |
| Scan raw content for threats — detects prompt injection, SQL/XSS injection, credential leaks, malicious code, and suspicious tool calls. Accepts raw text (default) or base64 for binary. Max 10 MB. |
| Poll a deferred scan result by scan ID |
| Get account details |
| Get scan usage vs monthly limit |
| List scan profiles |
| Create a scan profile |
| Update a scan profile |
| Delete a scan profile |
| List API keys |
| Create an API key |
| Delete an API key |
| Get paginated scan history |
| Get full details of a historical scan |
| Get available billing plans |
Resources
Resource | URI | Description |
API Reference |
| Complete REST API documentation |
SDK Quick Reference |
| Side-by-side SDK comparison |
Webhook Guide |
| Webhook setup and signature verification |
Python SDK Docs |
| Python SDK README |
JavaScript SDK Docs |
| JS/TS SDK README |
Go SDK Docs |
| Go SDK README |
SDK Source Files |
| SDK source code (client, models, errors, webhook) |
Agentic Security
The scan_payload tool is designed for AI agent workflows. When an agent scans a payload, Surface automatically detects:
Prompt injection — jailbreak attempts, role hijacking, instruction overrides
SQL injection — union attacks, tautology auth bypass, blind injection
XSS injection — script tags, event handlers, javascript: URIs
Credential exposure — API keys, tokens, private keys, connection strings
Malicious code — reverse shells, download cradles, eval/exec chains
Suspicious tool calls — dangerous execute/write/http operations
Known malicious URLs — checked against threat intelligence feeds
Results include promptInjection, codeExtraction, sensitiveData, and toolCallAnalysis fields with detailed findings.
Prompts
Prompt | Description |
| Analyze a scan result JSON and provide security assessment |
| Generate SDK code for a given language and use case |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
FlicenseAqualityDmaintenanceEnables users to scan MCP servers for security threats, check installed servers, and analyze config files for risks, all from AI assistants like Claude, Cursor, or Windsurf.5143
AgentAuditofficial
AlicenseAqualityDmaintenanceEnables AI agents to scan MCP servers and AI packages for vulnerabilities, prompt injection, and supply chain attacks.729AGPL 3.0- AlicenseAqualityBmaintenanceProvides prompt injection detection, PII/secrets redaction, and an audit trail for AI agents via MCP tools.4MIT
- FlicenseAqualityCmaintenanceEnables AI assistants to perform defensive security tasks such as vulnerability detection, CVE lookup, phishing/link safety checks, and security report generation via MCP tools.23
Related MCP Connectors
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tendrl-inc-labs/surface-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server