Skip to main content
Glama
RRGU26

BankRegPulse

by RRGU26
README.md
# BankRegPulse MCP Server

**Real-time banking regulatory intelligence for AI assistants**

[![npm version](https://badge.fury.io/js/bankregpulse-mcp-server.svg)](https://www.npmjs.com/package/bankregpulse-mcp-server)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org)
[![MCP](https://img.shields.io/badge/MCP-Compatible-blue)](https://modelcontextprotocol.io)

Connect your AI assistant (Claude, ChatGPT, etc.) to live banking regulatory data from 100+ sources including OCC, FDIC, CFPB, Federal Reserve, and all 50 state banking departments.

## What is This?

BankRegPulse MCP Server is a [Model Context Protocol](https://modelcontextprotocol.io) server that lets AI assistants query our regulatory intelligence database in real-time.

Instead of manually searching for regulatory updates, just ask your AI:
- *"What's in today's banking regulatory briefing?"*
- *"Play today's regulatory podcast"*
- *"Draft a LinkedIn post about today's CFPB updates"*

Your AI will pull fresh data from BankRegPulse and answer with context.

---

## Features

### šŸŽÆ Eight Tools

| Tool | Description | Example Use |
|------|-------------|-------------|
| `get_daily_briefing` | The morning brief (lead, regulatory developments, industry signals, political, what's coming, what it means), as markdown with its canonical URL | "What's in today's banking regulatory brief?" |
| `get_weekly_digest` | The Sunday print digest | "Summarize last week's regulatory developments" |
| `list_briefings` | Archive index: dates, titles, URLs | "Which edition covered the OCC charter decisions?" |
| `get_blog_posts` | Recent deep-dive analysis by Lex | "What has Lex written on the unsafe-or-unsound rule?" |
| `get_blog_post` | Full text of one deep dive, by slug | "Give me the full OCC-FDIC rule analysis" |
| `get_upcoming_deadlines` | Comment windows and effective dates from the deadline tracker | "What comment periods close in the next two weeks?" |
| `get_daily_podcast` | Audio URL and feed for the daily episode | "Get today's regulatory podcast" |
| `get_linkedin_post` | LinkedIn-ready post drafted from the brief | "Draft a LinkedIn post about today's news" |
| `subscribe_to_daily_brief` | Subscribe an email address to the free Daily Brief (6:45 AM ET) and Sunday digest; welcome email with one-click unsubscribe | "Subscribe me to LexRegPulse at name@bank.com" |

### šŸ“Š Data Coverage

- **Federal Agencies:** OCC, FDIC, CFPB, Federal Reserve, Treasury
- **State Banking Departments:** All 50 states
- **Congress:** House Financial Services, Senate Banking
- **Federal Register:** Final rules, proposed rules, notices
- **News:** Reuters, American Banker, PYMNTS, Banking Dive
- **Update Frequency:** Real-time (monitored 24/7)

---

## Installation

### Prerequisites

- Node.js 18 or higher
- An MCP-compatible AI assistant (Claude Desktop, Continue.dev, etc.)

### Option 1: NPM (Recommended)

```bash
npx bankregpulse-mcp-server
```

### Option 2: From Source

```bash
git clone https://github.com/RRGU26/bankregpulse-mcp-server.git
cd bankregpulse-mcp-server
npm install
npm run build
```

---

## Setup for Claude Desktop

1. **Locate Claude Desktop config:**
   - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
   - Windows: `%APPDATA%\Claude\claude_desktop_config.json`

2. **Add BankRegPulse MCP server:**

```json
{
  "mcpServers": {
    "bankregpulse": {
      "command": "npx",
      "args": ["bankregpulse-mcp-server"]
    }
  }
}
```

3. **Restart Claude Desktop**

4. **Test it:**
   - Open Claude Desktop
   - Ask: *"What's in today's banking regulatory briefing?"*
   - Claude will query the MCP server and return live data

---

## Setup for Other AI Assistants

### Continue.dev (VS Code)

Add to `~/.continue/config.json`:

```json
{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "npx",
          "args": ["bankregpulse-mcp-server"]
        }
      }
    ]
  }
}
```

### Custom Integration

Any MCP-compatible client can connect via stdio:

```typescript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';

const transport = new StdioClientTransport({
  command: 'npx',
  args: ['bankregpulse-mcp-server']
});

const client = new Client({
  name: 'my-client',
  version: '1.0.0'
}, {
  capabilities: {}
});

await client.connect(transport);
```

### HTTP/SSE Mode

Run the MCP server as an HTTP endpoint instead of stdio:

```bash
# Set environment variable
export MCP_TRANSPORT=http
export PORT=3000  # optional, defaults to 3000

# Run server
npx bankregpulse-mcp-server
```

**Endpoints:**
- `GET /health` - Health check
- `GET /sse` - SSE endpoint for MCP connections

**Connect via HTTP:**

```typescript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';

const transport = new SSEClientTransport(
  new URL('http://localhost:3000/sse')
);

const client = new Client({
  name: 'my-client',
  version: '1.0.0'
}, {
  capabilities: {}
});

await client.connect(transport);
```

**Test with curl:**

```bash
# Health check
curl http://localhost:3000/health

# SSE connection (requires MCP client)
curl -N http://localhost:3000/sse
```

---

## Usage Examples

### Daily Briefing

**Ask Claude:**
> "What's in today's banking regulatory briefing?"

**Claude queries:**
```
Tool: get_daily_briefing
Date: today
```

**You receive:**
- Executive summary of key developments
- Document count and high-priority items
- Agency-by-agency breakdown

---

### Podcast

**Ask Claude:**
> "Get me today's regulatory podcast"

**Claude queries:**
```
Tool: get_daily_podcast
Date: today
```

**You receive:**
- Audio URL for the daily briefing podcast
- Generated by AI from the day's regulatory developments

---

### LinkedIn Post

**Ask Claude:**
> "Draft a LinkedIn post about today's CFPB enforcement actions"

**Claude queries:**
```
Tool: get_linkedin_post
Date: today
```

**You receive:**
- Pre-formatted LinkedIn post with hashtags
- Key stats and highlights
- Ready to copy and share

---

## Advanced Usage

### Query Specific Dates

```
"What was in the regulatory briefing on February 20, 2024?"
```

Claude will pass `date: "2024-02-20"` to the tool.

### Custom API Endpoint

Set environment variable to use a different API:

```bash
export BANKREGPULSE_API_URL=https://your-custom-api.com
```

---

## Troubleshooting

### "No briefing found"

**Cause:** Briefing hasn't been generated yet (runs at 6 AM EST daily)

**Solution:** Query yesterday's briefing or wait until morning

### "API request failed"

**Cause:** Network issue or API is down

**Solution:**
1. Check https://bankregpulse-enterprise-api.onrender.com/health
2. Verify internet connection
3. Check Render status: https://status.render.com

### "Unknown tool"

**Cause:** MCP server not properly installed or outdated

**Solution:**
```bash
npm cache clean --force
npx bankregpulse-mcp-server@latest
```

---

## Development

### Local Development

```bash
# Clone repo
git clone https://github.com/RRGU26/bankregpulse-mcp-server.git
cd bankregpulse-mcp-server

# Install dependencies
npm install

# Build
npm run build

# Run locally
npm start
```

### Testing with MCP Inspector

```bash
npx @modelcontextprotocol/inspector npx bankregpulse-mcp-server
```

Opens a web UI to test tool calls.

---

## Architecture

```
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│  AI Assistant   │ (Claude, ChatGPT, etc.)
│  (MCP Client)   │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
         │ stdio
         │
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│  BankRegPulse   │
│   MCP Server    │ (this package)
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
         │ HTTPS
         │
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│  BankRegPulse   │
│      API        │ (bankregpulse-enterprise-api.onrender.com)
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
         │
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│   PostgreSQL    │
│   Database      │ (100+ regulatory sources)
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
```

---

## API Endpoints (Backend)

The MCP server calls these public API endpoints:

- `GET /api/mcp/briefing?date=YYYY-MM-DD` - Daily briefing
- `GET /api/mcp/podcast?date=YYYY-MM-DD` - Podcast URL
- `GET /api/mcp/linkedin-post?date=YYYY-MM-DD` - LinkedIn post

No authentication required for basic usage.

---

## Pricing

**Free** for community use.

No API key required. Rate limits apply:
- 100 requests per hour per IP
- Fair use policy

For enterprise usage (higher limits, SLA), contact: admin@bankregpulse.com

---

## Support

- **Website:** https://bankregpulse.com
- **Documentation:** https://docs.bankregpulse.com
- **Issues:** https://github.com/RRGU26/bankregpulse-mcp-server/issues
- **Email:** admin@bankregpulse.com

---

## Contributing

Contributions welcome! Please:

1. Fork the repo
2. Create a feature branch
3. Submit a pull request

---

## License

MIT License - see [LICENSE](./LICENSE) for details.

---

## Acknowledgments

- Built on [Model Context Protocol](https://modelcontextprotocol.io) by Anthropic
- Powered by [BankRegPulse](https://bankregpulse.com) regulatory intelligence platform
- Regulatory data from OCC, FDIC, CFPB, Federal Reserve, and state banking departments

---

## Related Projects

- [BankRegPulse Web App](https://app.bankregpulse.com) - Full-featured regulatory intelligence platform
- [MCP Servers](https://github.com/modelcontextprotocol/servers) - Official MCP server examples
- [Awesome MCP Servers](https://github.com/punkpeye/awesome-mcp-servers) - Community-curated list

---

**Made with ā¤ļø for the banking compliance community**

TDQS

B3.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_daily_briefing provides text summaries, get_daily_podcast delivers audio content, and get_linkedin_post offers social media formatting. There is no overlap in functionality, making it easy for an agent to select the right tool based on the desired output format.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with 'get_' as the prefix, followed by a descriptive noun phrase (daily_briefing, daily_podcast, linkedin_post). This uniformity enhances readability and predictability across the tool set.

Tool Count3/5

With only 3 tools, the server feels thin for the domain of banking regulatory intelligence, which might involve more operations like searching archives or filtering by agency. While the tools cover core outputs, the count is borderline low for comprehensive coverage.

Completeness2/5

The tool set is severely incomplete for a regulatory intelligence server, as it only provides retrieval of pre-formatted outputs without any CRUD operations, search capabilities, or filtering options. Agents cannot interact with historical data, customize queries, or manage content, leading to significant gaps in functionality.

Maintenance

ActivityMaintained
ResponsivenessNo issues