Ghost Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Ghost Mcp Server (Agent Skill) 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 Model Context Protocol (MCP) server for the Ghost Security API, providing secure access to security findings and repository data through standardized tools.
Option 1: Interactive Installer (Easiest)
# Clone and build
git clone https://github.com/ghostsecurity/ghost-mcp-server
cd ghost-mcp-server
npm install && npm run build
# Run interactive installer (prompts for API key)
npm run install:interactiveOption 2: Automated Setup Script
# Clone and build
git clone https://github.com/ghostsecurity/ghost-mcp-server
cd ghost-mcp-server
npm install && npm run build
# Run setup script with your API key
./setup-claude-code.sh YOUR_API_KEY
# Optional: Scope to a specific repository
./setup-claude-code.sh YOUR_API_KEY YOUR_REPO_IDOption 3: Manual Setup
# Clone and build
git clone https://github.com/ghostsecurity/ghost-mcp-server
cd ghost-mcp-server
npm install && npm run build
# Add to Claude Code
claude mcp add --transport stdio --scope user ghost-security -- node $(pwd)/dist/index.js
# Then edit ~/.claude.json and add under mcpServers.ghost-security.env:
# {
# "GHOST_SECURITY_API_KEY": "your-api-key",
# "GHOST_SECURITY_BASE_URL": "https://api.ghostsecurity.ai/v2"
# }Option 4: From npm (Coming Soon)
Once published to npm, installation will be even simpler:
claude mcp add --transport stdio --scope user ghost-security -- npx ghostsecurity-mcpThen add your API key to ~/.claude.json:
{
"mcpServers": {
"ghost-security": {
"env": {
"GHOST_SECURITY_API_KEY": "your-api-key-here",
"GHOST_SECURITY_BASE_URL": "https://api.ghostsecurity.ai/v2"
}
}
}
}git clone <repository-url>
cd ghost-mcp-servernpm installnpm run buildThe server requires a Ghost Security API key to be provided at startup. You can provide it in two ways:
#### Option 1: Environment Variable (Recommended)
export GHOST_SECURITY_API_KEY="your-ghost-security-api-key"
export GHOST_SECURITY_BASE_URL="https://api.ghostsecurity.ai/v2" # optional, defaults to v2
export GHOST_SECURITY_REPO_ID="your-repository-id" # optional - scope to specific repo#### Option 2: Command Line Argument
node dist/index.js "your-ghost-security-api-key" "your-repository-id"Note: Repository ID is optional. If provided, all operations will be scoped to that repository.
For development:
# Set environment variable first
export GHOST_SECURITY_API_KEY="your-api-key"
npm run devFor production:
# Either with environment variable
export GHOST_SECURITY_API_KEY="your-api-key"
npm start
# Or with command line argument
npm run build
node dist/index.js "your-api-key"This project includes a simple CLI chatbot powered by Anthropic's Claude API that can interact with the MCP server.
export ANTHROPIC_API_KEY="your-anthropic-api-key"
export GHOST_SECURITY_API_KEY="your-ghost-api-key"
npm run chatThis server follows the standard MCP configuration format. Here are examples for different clients:
#### Standard MCP Configuration (Claude Desktop, ChatGPT, etc.)
{
"mcpServers": {
"ghostsecurity": {
"command": "node",
"args": ["/path/to/ghost-mcp-server/dist/index.js"],
"env": {
"GHOST_SECURITY_API_KEY": "your-ghost-security-api-key",
"GHOST_SECURITY_REPO_ID": "your-repository-id"
}
}
}
}#### Environment Variable Setup (Universal) For any MCP client that supports environment variables:
export GHOST_SECURITY_API_KEY="your-ghost-security-api-key"
export GHOST_SECURITY_BASE_URL="https://api.ghostsecurity.ai/v2"
export GHOST_SECURITY_REPO_ID="your-repository-id"When a repository ID is configured via GHOST_SECURITY_REPO_ID environment variable or CLI argument:
ghostsecurity_get_findings returns findings only for that repositoryghostsecurity_get_repositories returns only the configured repositoryghostsecurity_get_repository_findings uses the configured repository as default (repoId parameter becomes optional)#### ghostsecurity_get_findings Get security findings with optional filtering and pagination.
Parameters:
cursor (string, optional): Pagination cursorsort (string, optional): Sort field (created_at, updated_at)order (string, optional): Sort order (asc, desc)size (number, optional): Page size (1-1000)status (string, optional): Filter by statusrepo_id (string, optional): Filter by repository IDproject_id (string, optional): Filter by project ID#### ghostsecurity_get_finding Get a specific security finding by ID.
Parameters:
id (string, required): Finding IDrepoId (string, required): Repository ID associated with the findingprojectId (string, required): Project ID associated with the finding#### ghostsecurity_update_finding_status Update the status of a security finding.
Parameters:
id (string, required): Finding IDrepoId (string, required): Repository ID associated with the findingprojectId (string, required): Project ID associated with the findingstatus (string, required): New status for the finding#### ghostsecurity_get_repositories Get repositories with optional filtering and pagination.
Parameters:
cursor (string, optional): Pagination cursorsort (string, optional): Sort field (created_at, updated_at, last_committed_at)order (string, optional): Sort order (asc, desc)size (number, optional): Page size (1-1000)#### ghostsecurity_get_repository Get a specific repository by ID.
Parameters:
id (string, required): Repository ID#### ghostsecurity_get_repository_findings Get security findings for a specific repository.
Parameters:
repoId (string, optional): Repository ID (required unless GHOST_SECURITY_REPO_ID is configured)cursor (string, optional): Pagination cursorsort (string, optional): Sort field (created_at, updated_at)order (string, optional): Sort order (asc, desc)size (number, optional): Page size (1-1000)This server is configured for publishing to the MCP Registry.
brew install mcp-publisher mcp-publisher login github mcp-publisher publishThe server.json file contains the necessary metadata. Ensure you have published the package to NPM before publishing to the registry.
npm run dev: Run in development mode with hot reloadnpm run build: Build TypeScript to JavaScriptnpm start: Run the built servernpm run chat: Run the CLI chatbotsrc/
├── index.ts # Main MCP server implementation
├── ghost-client.ts # Ghost Security API client (V2)
├── types.ts # TypeScript type definitions
└── chatbot.ts # CLI Chatbot implementationThis MCP server provides a complete interface to the Ghost Security API V2. For detailed API documentation, visit: https://docs.ghostsecurity.ai/api-reference/introduction
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.