Install
$ agentstack add mcp-olanetsoft-midnight-mcp Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Destructive filesystem operation.
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Midnight MCP Server
[](https://www.npmjs.com/package/midnight-mcp) [](https://npm-stat.com/charts.html?package=midnight-mcp) [](./LICENSE) [](https://www.typescriptlang.org/) [](https://github.com/Olanetsoft/midnight-mcp/actions/workflows/ci.yml)
MCP server that gives AI assistants access to Midnight blockchain—search contracts, analyze code, and explore documentation.
This project extends the Midnight Network with additional developer tooling.
Requirements
- Node.js 20+ (LTS recommended)
Check your version: node --version
Using nvm? Click for Claude Desktop setup
If you use nvm, Claude Desktop may not see your nvm-managed Node. Use this config instead:
{
"mcpServers": {
"midnight": {
"command": "/bin/sh",
"args": [
"-c",
"source ~/.nvm/nvm.sh && nvm use 20 >/dev/null 2>&1 && npx -y midnight-mcp@latest"
]
}
}
}
Quick Start
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"midnight": {
"command": "npx",
"args": ["-y", "midnight-mcp@latest"]
}
}
}
Config file locations:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Cursor
One-click install:
[](https://cursor.com/en-US/install-mcp?name=midnight&config=eyJjb21tYW5kIjoibnB4IC15IG1pZG5pZ2h0LW1jcEBsYXRlc3QifQ==)
Or manually add to .cursor/mcp.json:
{
"mcpServers": {
"midnight": {
"command": "npx",
"args": ["-y", "midnight-mcp@latest"]
}
}
}
VS Code Copilot
Add to .vscode/mcp.json or use Command Palette: MCP: Add Server → "command (stdio)" → npx -y midnight-mcp@latest
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"midnight": {
"command": "npx",
"args": ["-y", "midnight-mcp@latest"]
}
}
}
No API keys required. Restart your editor after adding the config.
> Why @latest? Unlike cached npx packages that never auto-update, @latest ensures you get new features and fixes on each restart. If upgrading from an older config without @latest, also clear your npx cache: rm -rf ~/.npm/_npx
What's Included
29 Tools
| Category | Tools | Description | | ----------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | | Search | search-compact, search-typescript, search-docs, fetch-docs | Semantic search + live docs fetching | | Analysis | analyze-contract, explain-circuit, extract-contract-structure, compile-contract | Static analysis + real compilation | | Repository | get-file, list-examples, get-latest-updates | Access files and examples | | Versioning | get-version-info, check-breaking-changes, get-migration-guide, get-file-at-version, compare-syntax, get-latest-syntax | Version tracking and migration | | AI Generation | generate-contract, review-contract, document-contract | AI-powered code generation (requires sampling) | | Compound | upgrade-check, get-repo-context | Multi-step operations (saves 50-70% tokens) | | Health | health-check, get-status, check-version | Server status and version checking | | Discovery | list-tool-categories, list-category-tools, suggest-tool | Explore available tools and get recommendations |
All tools are prefixed with midnight- (e.g., midnight-search-compact).
Real Contract Compilation
The midnight-compile-contract tool validates Compact code using a hosted compiler service:
✅ Compilation successful (Compiler v0.29.0) in 2841ms
- Fast mode (
skipZk=true): Syntax validation in ~1-2 seconds - Full mode (
fullCompile=true): Complete ZK circuit generation in ~10-30 seconds - Automatic fallback: Falls back to static analysis if the compiler service is unavailable
This catches semantic errors that static analysis misses (sealed fields, disclose rules, type mismatches).
MCP Capabilities
| Capability | Feature | | --------------- | ----------------------------------------------- | | Tools | 29 tools with listChanged notifications | | Resources | 9 embedded resources with subscription support | | Prompts | 5 workflow prompts | | Logging | Client-controllable log level | | Completions | Autocomplete for prompt arguments | | Progress | Real-time progress for compound tools | | Sampling | AI-powered generation (when client supports it) |
9 Embedded Resources
Quick references available offline:
- Compact syntax guide (v0.16-0.21)
- SDK API reference
- OpenZeppelin contracts
- Tokenomics overview
- Wallet integration
- Common errors & solutions
Static Analysis
extract-contract-structure catches common mistakes before compilation:
| Check | Severity | Description | | ------------------------- | -------- | ------------------------------------------------------- | | deprecated_ledger_block | P0 | Catches ledger { } → use export ledger field: Type; | | invalid_void_type | P0 | Catches Void → use [] (empty tuple) | | invalid_pragma_format | P0 | Catches old pragma → use `>= 0.16 && HTTP port (default: 3000) --json Output in JSON (default: YAML for better LLM efficiency) --github-token GitHub token (overrides GITHUB_TOKEN env var) -h, --help Show help -v, --version Show version
> **Why YAML by default?** YAML is ~20-30% more token-efficient than JSON, which means AI assistants can process more context from tool responses.
### Local Mode
Run everything locally for privacy or offline use:
```json
{
"mcpServers": {
"midnight": {
"command": "npx",
"args": ["-y", "midnight-mcp@latest"],
"env": {
"MIDNIGHT_LOCAL": "true",
"OPENAI_API_KEY": "sk-...",
"CHROMA_URL": "http://localhost:8000"
}
}
}
}
Requires ChromaDB (docker run -d -p 8000:8000 chromadb/chroma) and OpenAI API key.
GitHub Token
Add "GITHUB_TOKEN": "ghp_..." for higher GitHub API rate limits (60 → 5000 requests/hour).
Developer Setup
git clone https://github.com/Olanetsoft/midnight-mcp.git && cd midnight-mcp
npm install && npm run build && npm test
# Lint & format
npm run lint # ESLint (typescript-eslint)
npm run lint:fix # Auto-fix lint issues
npm run format # Prettier
The hosted API runs on Cloudflare Workers + Vectorize. See [api/README.md](./api/README.md) for backend details.
Links
License
MIT
Stargazers ⭐️
[](https://star-history.com/#Olanetsoft/midnight-mcp&Date)
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Olanetsoft
- Source: Olanetsoft/midnight-mcp
- License: MIT
- Homepage: https://www.npmjs.com/package/midnight-mcp
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.