Skip to main content
Glama
northernvariables

FedMCP - Federal Parliamentary Information

README.md4.09 kB
# CanadaGPT Packages This directory contains all packages for the CanadaGPT monorepo. ## Package Structure ### `fedmcp/` (Python) **FedMCP Server** - Model Context Protocol server providing 52+ tools for Canadian government data. - **Language**: Python 3.11+ - **Purpose**: MCP server for Claude Desktop integration - **Status**: ✅ Production (existing codebase) - **Tools**: 52 tools across 11 Canadian government APIs - **Build**: `cd fedmcp && pip install -e .` ### `frontend/` (TypeScript/Next.js) **CanadaGPT Frontend** - Public-facing web application with Canada dark theme. - **Language**: TypeScript + Next.js 15 (App Router) - **Purpose**: User interface for graph-powered government accountability - **Status**: 🚧 In Development - **Features**: MP profiles, bill tracking, lobbying analysis, expense tracking - **Build**: `npm run build:frontend` - **Dev**: `npm run dev:frontend` ### `graph-api/` (TypeScript/Node.js) **GraphQL API** - Graph database API layer using Neo4j GraphQL Library. - **Language**: TypeScript + GraphQL Yoga - **Purpose**: API layer over Neo4j graph database - **Status**: 🚧 In Development - **Features**: Auto-generated CRUD + custom Cypher queries - **Build**: `npm run build:api` - **Dev**: `npm run dev:api` ### `data-pipeline/` (Python) **Data Ingestion Pipeline** - Nightly batch ETL from government APIs to Neo4j. - **Language**: Python 3.11+ - **Purpose**: Scheduled data synchronization (2 AM ET daily) - **Status**: 🚧 In Development - **Sources**: 11 Canadian government APIs - **Run**: Deployed as Cloud Run Job (scheduled via Cloud Scheduler) ### `design-system/` (TypeScript/React) **Canada Dark Theme Design System** - Shared UI components and styling. - **Language**: TypeScript + React + Tailwind CSS - **Purpose**: Reusable components for authoritative Canadian government aesthetic - **Status**: 🚧 In Development - **Theme**: Subtle Canada neutrals (dark slate + muted red) - **Components**: MapleLeaf icon, Parliament imagery, Cards, Buttons, Metrics - **Build**: `npm run build:design-system` ## Development Workflow ### Initial Setup ```bash # Install Node.js dependencies (workspaces) npm install # Install Python dependencies for fedmcp cd packages/fedmcp pip install -e . # Install Python dependencies for data-pipeline cd packages/data-pipeline pip install -r requirements.txt ``` ### Running Services Locally ```bash # Frontend (Next.js dev server) npm run dev:frontend # → http://localhost:3000 # GraphQL API npm run dev:api # → http://localhost:4000/graphql # Data pipeline (manual run) cd packages/data-pipeline python -m src.pipeline.nightly_update ``` ### Building for Production ```bash # Build all packages npm run build:all # Or build individually npm run build:design-system npm run build:api npm run build:frontend ``` ## Package Dependencies ``` design-system (base) ↓ ├─→ frontend (depends on design-system) └─→ graph-api (independent, but shares types) fedmcp (independent Python) ↓ data-pipeline (imports fedmcp clients) ``` ## Technology Stack ### Frontend Stack - **Framework**: Next.js 15 (App Router, React Server Components) - **Styling**: Tailwind CSS (Canada dark theme) - **Data Fetching**: TanStack Query + graphql-request - **Charts**: Recharts - **Deployment**: Google Cloud Run (containerized) ### API Stack - **GraphQL**: GraphQL Yoga + @neo4j/graphql - **Database**: Neo4j Aura Professional (graph database) - **Validation**: Zod - **Deployment**: Google Cloud Run (containerized) ### Data Pipeline Stack - **Language**: Python 3.11 - **Neo4j Driver**: neo4j-driver (official) - **Scheduling**: Cloud Scheduler → Cloud Run Jobs - **Sources**: FedMCP clients (reused from existing codebase) ### Infrastructure - **Cloud Provider**: Google Cloud Platform - **Compute**: Cloud Run (serverless containers) - **Database**: Neo4j Aura (managed graph database) - **Networking**: VPC Connector + Private Service Connect - **Secrets**: Secret Manager - **CI/CD**: GitHub Actions + Cloud Build - **IaC**: Terraform ## License MIT

Latest Blog Posts

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/northernvariables/FedMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server