https://github.com/rhyssullivan/contact-authorities-mcp
https://github.com/rhyssullivan/contact-authorities-mcp
Last synced: 21 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/rhyssullivan/contact-authorities-mcp
- Owner: RhysSullivan
- Created: 2025-05-24T17:11:08.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-05-24T18:22:34.000Z (4 months ago)
- Last Synced: 2025-06-23T00:44:45.612Z (3 months ago)
- Language: TypeScript
- Homepage: https://v0-mcp-server-project.vercel.app
- Size: 147 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Contact Authorities MCP Server
A Model Context Protocol (MCP) server for logging contact events with authorities, featuring rate limiting and persistent storage with Supabase.
## Features
- **MCP Integration**: Full Model Context Protocol support using @vercel/mcp-adapter
- **Rate Limiting**: 5 requests per minute per IP address
- **Persistent Storage**: Supabase database for events and rate limiting
- **Multiple Authority Targets**: Police, Fire, Medical, FBI, Cybercrime, Local
- **Web Interface**: User-friendly form for manual event submission
- **Real-time Logging**: All events logged with timestamps and IP addresses## MCP Tools
### `contact_authorities`
Log a contact event with authorities.**Parameters:**
- `title` (string, required): Brief title describing the incident
- `target` (string, required): Authority target (police, fire, medical, fbi, cybercrime, local)
- `description` (string, required): Detailed description of the contact reason### `get_contact_events`
Retrieve recent contact authority events.**Parameters:**
- `limit` (number, optional): Maximum events to retrieve (default: 20, max: 100)
- `target` (string, optional): Filter by authority target### `get_rate_limit_status`
Check current rate limit status for the requesting IP.## Setup
1. **Install Dependencies**
\`\`\`bash
npm install @vercel/mcp-adapter @supabase/supabase-js
\`\`\`2. **Environment Variables**
\`\`\`env
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
\`\`\`3. **Database Setup**
Run the SQL scripts in your Supabase project to create the required tables.4. **MCP Client Configuration**
Add to your MCP client configuration:
\`\`\`json
{
"mcpServers": {
"contact-authorities": {
"transport": {
"type": "http",
"url": "https://your-domain.com/api/mcp"
}
}
}
}
\`\`\`## Usage
### Via MCP Client
AI models can use the MCP tools to:
- Log contact events with authorities
- Retrieve recent events
- Check rate limit status### Via Web Interface
Users can manually submit contact events through the web form at the root URL.## Rate Limiting
- 5 requests per minute per IP address
- Applies to both MCP and web interface
- Persistent tracking via Supabase
- Automatic cleanup of old rate limit entries## Security
- Row Level Security (RLS) enabled on all tables
- IP address logging for all requests
- Input validation and sanitization
- Service role authentication for database access