
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
@weave_protocol/inspector
Advanced tools
Real-time MCP security proxy - intercepts, scans, and gates AI agent tool calls
Real-Time MCP Security Proxy for AI Agents
Part of the Weave Protocol security suite.
Inspector sits between AI agents and MCP servers, providing:
┌─────────────────────────────────────────────────────────────┐
│ AI Agent (Claude Code, Cursor, etc.) │
└─────────────────┬───────────────────────────────────────────┘
│ Tool calls
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔍 Weave Inspector │
│ │
│ • Intercept every tool call │
│ • Scan arguments for secrets, PII, injection │
│ • Detect drift from declared intent │
│ • Check server reputation │
│ • Gate risky operations for approval │
│ • Log everything with blockchain anchoring │
│ │
└─────────────────┬───────────────────────────────────────────┘
│ Approved calls only
▼
┌─────────────────────────────────────────────────────────────┐
│ Target MCP Servers (filesystem, github, slack, etc.) │
└─────────────────────────────────────────────────────────────┘
"Said X, Doing Y" Detection: Catches when an AI agent says it will "read a file" but actually tries to "delete the database."
npm install @weave_protocol/inspector
Add to claude_desktop_config.json:
{
"mcpServers": {
"inspector": {
"command": "npx",
"args": ["-y", "@weave_protocol/inspector"]
}
}
}
import { Interceptor, ReputationManager } from '@weave_protocol/inspector';
// Create components
const interceptor = new Interceptor({
mode: 'active', // 'passive' | 'active' | 'strict'
scanEnabled: true,
driftDetectionEnabled: true,
reputationEnabled: true,
minReputationScore: 30,
});
const reputationManager = new ReputationManager();
// Wire them together
interceptor.setReputationChecker(async (serverId) => {
return reputationManager.getScore(serverId);
});
// Create a session
const session = interceptor.createSession('my-agent');
// Declare intent (enables drift detection)
interceptor.declareIntent(session.id, 'Read and summarize the README file');
// Intercept a tool call
const call = await interceptor.intercept(
session.id,
'filesystem',
'read_file',
{ path: '/README.md' }
);
if (call.status === 'approved') {
// Execute the actual call
// ...
interceptor.recordResult(call.id, result);
} else if (call.status === 'pending') {
console.log('Manual approval required:', call.decisionReason);
} else {
console.log('Blocked:', call.decisionReason);
}
| Tool | Purpose |
|---|---|
inspector_create_session | Start inspection session |
inspector_declare_intent | Declare what you plan to do |
inspector_end_session | End session and get summary |
| Tool | Purpose |
|---|---|
inspector_get_live_feed | Real-time stream of intercepted calls |
inspector_get_call_history | Query historical call data |
inspector_diff_intent | "Said X, doing Y" analysis |
| Tool | Purpose |
|---|---|
inspector_get_pending | List calls waiting for approval |
inspector_approve_call | Manually approve a pending call |
inspector_block_call | Manually block a pending call |
| Tool | Purpose |
|---|---|
inspector_check_reputation | Get server trust score |
inspector_report_suspicious | Report bad behavior |
inspector_get_server_stats | Detailed server analytics |
inspector_list_servers | List all known servers |
| Tool | Purpose |
|---|---|
inspector_set_policy | Configure inspection rules |
inspector_get_config | View current settings |
inspector_get_stats | Overall statistics |
| Mode | Behavior |
|---|---|
| passive | Log everything, block nothing |
| active | Block critical issues, require approval for high-risk |
| strict | Block all high-risk operations automatically |
// Set mode via tool
inspector_set_policy({ mode: 'strict' })
// Or programmatically
interceptor.setConfig({ mode: 'strict' });
Servers are scored 0-100 based on:
| Factor | Weight | Description |
|---|---|---|
| Trust | 30% | Verification status, age, known good |
| Security | 40% | Blocked calls, scan results |
| Community | 15% | User reports, confirmed issues |
| Reliability | 15% | Success rate, response time |
anthropic/filesystem - 95
anthropic/github - 95
anthropic/slack - 90
modelcontextprotocol/* - 85-90
Compares declared intent against actual tool calls:
// Declare intent
inspector_declare_intent({
session_id: 'abc123',
intent: 'Read and summarize the README file'
});
// Later, if the agent tries to:
// - Delete files → DRIFT DETECTED (scope expansion)
// - Access payment data → DRIFT DETECTED (data access)
// - Execute code → DRIFT DETECTED (capability escalation)
Drift severity:
Inspector integrates with other Weave Protocol packages:
import { Interceptor } from '@weave_protocol/inspector';
import { scan } from '@weave_protocol/mund';
import { ComplianceManager } from '@weave_protocol/domere';
const interceptor = new Interceptor();
const compliance = new ComplianceManager(['soc2']);
// Use Mund for scanning
interceptor.setScanner(async (content) => {
const result = await scan(content);
return {
safe: result.safe,
issues: result.issues,
scannedAt: new Date(),
scanDurationMs: 0,
};
});
// Use Domere for blockchain anchoring
interceptor.setBlockchainAnchor(async (data) => {
const checkpoint = await compliance.createCheckpoint({
action: 'tool_call',
resource: 'mcp',
actor: 'inspector',
metadata: data,
});
return checkpoint.id;
});
// Get live feed for dashboard
const feed = await inspector_get_live_feed({ limit: 50 });
// Show pending approvals
const pending = await inspector_get_pending();
// Check overall health
const stats = await inspector_get_stats();
console.log(`
📊 Inspector Dashboard
─────────────────────
Total Calls: ${stats.interceptor.totalCalls}
Approved: ${stats.interceptor.approvedCalls}
Blocked: ${stats.interceptor.blockedCalls}
Pending: ${stats.interceptor.pendingCalls}
Active Sessions: ${stats.interceptor.activeSessions}
🏢 Server Health
─────────────────────
Total Servers: ${stats.reputation.total_servers}
Verified: ${stats.reputation.verified_servers}
Malicious: ${stats.reputation.malicious_servers}
Low Rep: ${stats.reputation.low_reputation_servers}
`);
This package includes a SKILL.md for Claude AI integration.
Skill name: security-inspection
Triggers: inspect, intercept, drift, reputation, approve, block, live feed
Apache 2.0 - See LICENSE
FAQs
Real-time MCP security proxy - intercepts, scans, and gates AI agent tool calls
The npm package @weave_protocol/inspector receives a total of 2 weekly downloads. As such, @weave_protocol/inspector popularity was classified as not popular.
We found that @weave_protocol/inspector demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.