Brave Search MCP Server
Forensics Connection MCP Server
A Model Context Protocol (MCP) server that analyzes forensic evidence to identify people and their connections, then generates Python code for network visualization.
Features
LLM-Powered Relationship Analysis: Uses OpenAI's GPT-4 to intelligently analyze relationships between people in evidence text
Network Visualization: Generates comprehensive Python code using NetworkX and Matplotlib for interactive network graphs
Evidence Parsing: Automatically extracts and categorizes different types of evidence (police reports, witness statements, communications, etc.)
Connection Strength Scoring: Assigns relationship strength scores (1-10) based on evidence quality
Cluster Analysis: Identifies groups and central figures in the network
Flexible Filtering: Configurable minimum connection strength thresholds
Installation
Clone the repository:
git clone <repository-url>
cd mcp-forensicsInstall dependencies:
npm installSet up environment variables:
cp .env.example .env
# Edit .env and add your OpenAI API keyBuild the project:
npm run buildConfiguration
Create a .env file with your OpenAI API key:
OPENAI_API_KEY=your_openai_api_key_hereUsage
As an MCP Server
The server can be used with any MCP-compatible client:
npm startAvailable Tools
analyze_connections
Analyzes evidence text to identify people and their connections.
Parameters:
evidence(required): The evidence text to analyzeoptions(optional):includeVisualization(boolean, default: true): Whether to include Python visualization codeminimumConnectionStrength(number, default: 3): Minimum connection strength to include (1-10)groupByOrganization(boolean, default: true): Whether to group people by organization
Returns:
List of people identified with their organizations and roles
Connections between people with strength scores and evidence
Central figures in the network
Clusters/groups of related people
Python code for network visualization
Example Usage
// Example evidence input
const evidence = `
Police Report #001: Incident occurred at 123 Main St on January 15, 2024 at 2:30 PM.
Witness John Smith reported suspicious activity. Vehicle license plate ABC123 was seen leaving the scene.
Email Chain - Subject: Concerns about OpenAI:
From: elon.musk@x.com To: satya.nadella@microsoft.com, mark.zuckerberg@meta.com
"I'm increasingly concerned about Sam's strategic direction..."
Meeting Notes - Private Tech Leaders Dinner:
Attendees: Musk, Nadella, Zuckerberg. Topic: OpenAI concerns.
`;
// The server will return detailed analysis and Python visualization codeLLM-Enhanced Relationship Analysis
The system uses OpenAI's GPT-4 to analyze relationships with sophisticated context understanding:
Direct Communications: Emails, messages, calls (strength: 9-10)
Face-to-Face Meetings: Shared events, professional collaboration (strength: 7-8)
Group Communications: Shared concerns, indirect interactions (strength: 5-6)
Professional Associations: Mentioned together, weak connections (strength: 3-4)
Coincidental Mentions: Very weak connections (strength: 1-2)
Python Visualization Output
The generated Python code includes:
Network Graph: Interactive visualization with NetworkX and Matplotlib
Organization Grouping: Color-coded nodes by organization
Connection Types: Different edge styles for different relationship types
Centrality Analysis: Node sizes based on degree centrality
Statistical Report: Network statistics and key findings
Customizable Layout: Spring layout for optimal node positioning
Required Python Dependencies
The generated code requires:
pip install networkx matplotlib numpyDevelopment
Scripts
npm run build: Compile TypeScript to JavaScriptnpm run dev: Build with watch modenpm start: Run the compiled servernpm run inspector: Run with MCP inspector for debugging
Project Structure
src/
├── index.ts # Main server entry point
├── types.ts # TypeScript type definitions
├── evidenceParser.ts # Evidence parsing and LLM analysis
├── pythonGenerator.ts # Python code generation
└── ...Connection Types
The system identifies several types of connections:
communication: Direct communications (emails, messages)
meeting: In-person meetings and events
witness: Witness/observer relationships
location: Geographic/location-based connections
organization: Same organization affiliations
other: General associations and mentions
Error Handling
Fallback to pattern-based analysis if LLM calls fail
Rate limiting protection for OpenAI API calls
Comprehensive error reporting and logging
Graceful degradation for missing data
License
MIT License
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/YC-Agents-Hackathon/mcp-forensics'
If you have feedback or need assistance with the MCP directory API, please join our Discord server