Prasanth Janardhanan

My Projects

EU AI Act Compliance Navigator

An agentic RAG system that helps developers and product teams determine the regulatory status of their AI system under the EU AI Act. Given a plain-English description of an AI system, it classifies the risk tier (Prohibited / High-Risk / Limited-Risk / Minimal-Risk), identifies the specific Articles and Annexes that apply, and generates a prioritized, actionable compliance checklist with direct citations.

Built as a Go monolith — the RAG pipeline, API gateway, and MCP server are all in a single binary. The MCP server (built with the gomcpgo framework) lets any AI agent call compliance checks as a live tool during development. Uses hybrid search (semantic + keyword) for retrieval and LLM-based confidence scoring for classification.

Stack: Go, React, PostgreSQL + pgvector, OpenAI embeddings, gomcpgo MCP framework

gomcpgo — Go MCP Framework

An open-source Go framework for building Model Context Protocol (MCP) servers that enable LLMs to securely access tools and data sources. MCP is now a Linux Foundation standard under the Agentic AI Foundation. The framework supports tool, resource, and prompt handlers with a clean registry-based architecture — making it straightforward to expose any Go service as an MCP server for AI agents like Claude, GPT-4, or Cursor.

The gomcpgo GitHub org includes 12+ published MCP servers built with the framework, covering filesystem operations, email, audio transcription, image generation (Replicate), video AI, web fetching, Perplexity search, and document generation.

Stack: Go
GitHub Org: github.com/gomcpgo

Braille OCR Transcriber

A research-driven Braille OCR system with the first working ML model for Grade 2 (contracted) Braille — covering the 90-95% of real Braille documents that no other system supports. Existing OCR tools only handle Grade 1 (uncontracted), which represents just 5-10% of real-world usage.

Uses a two-stage architecture: YOLOv8 for cell detection (98-99% accuracy), then a ByT5 sequence-to-sequence model for context-aware interpretation of contracted Braille. The ByT5 model achieves 92.9% normalized match accuracy with 0.004 CER on real-world data — roughly 9x better than the liblouis back-translation baseline.

Stack: Python, PyTorch, ByT5 (Hugging Face Transformers), YOLOv8
Model: prasanthmj/braille-byt5-v3 on Hugging Face


Other Projects

qUP — A background task processor with BadgerDb persistence, written in Go.

Machine — Wrapper around the machinery Go library for background task execution.

Chimes — A JWT-only API authentication library. TypeScript client, Go server.

Boel — A JavaScript form data validation library with declarative syntax and conditional validations.