Skip to main content
Skip to content

Built in the open.

PA Agent is an open-source project exploring how AI can simplify government processes. The code, the data, and the approach are all public. Contributions, feedback, and ideas are welcome.

Everything ships public
The full codebase, the structured data, the MCP server, and the documentation. No hidden layers.

Full application source

The complete PA Agent codebase — Rust orchestration, Python ML pipelines, API server, CLI tools — is available on GitHub under a permissive license.

Structured immigration data

199 countries, 40,000+ eligibility profiles, 5,700+ requirement records, and 4,500+ document templates. Seeded from public datasets and continuously updated.

VisaCheck MCP server

A standalone MCP server that exposes visa requirement data to any MCP-compatible AI client. Available as an npm package — install with a single command.

Documentation & context

Comprehensive project context, architecture decisions, database schema, fine-tuning strategy, and security model — all documented in CONTEXT.md.

What it's built with
A Rust core for performance and safety, Python for ML flexibility, and PostgreSQL for structured data.
Rust graph-flow rig-core axum sqlx PostgreSQL pgvector FalkorDB PyTorch PEFT / QLoRA TRL Docker

The Rust and Python components share the same PostgreSQL database. Rust handles the real-time orchestration, API serving, and agent pipeline. Python handles ML training, data seeding, and experimentation.

Where the data comes from

Passport Index

Visa-free access matrix from the imorte/passport-index-data dataset. Covers bilateral visa policies between all country pairs.

Global Visa Cost Dataset

Visa fee data from the Zenodo Global Visa Cost Dataset. Standardized fee information across jurisdictions.

Official eVisa Portals

Curated list of official government eVisa portal URLs. Verified manually and enriched via API calls where available.

How to get involved
PA Agent is currently a personal project, but the codebase is public and feedback is valued.
1

Explore the code

Clone the repo, read CONTEXT.md, and browse the crate and package structure to understand how everything fits together.

2

Open an issue

Found a bug, have a data correction, or want to suggest a feature? Open a GitHub issue. All feedback helps shape the project.

3

Start a conversation

Interested in the approach, the data, or the architecture? Reach out. The best ideas come from unexpected places.

The code is waiting.

Explore PA Agent on GitHub. Read the docs, spin up the services, run the chat, or plug in the MCP server.