https://github.com/stefanoamorelli/estonia-ai-kit
πͺπͺ AI SDK for Estonian government services - including MCP servers for Business Register, Tax Board, Open Data Portal. Connect Claude, GPT & other AI models to Estonia's digital infrastructure.
https://github.com/stefanoamorelli/estonia-ai-kit
ai ai-tools business-register claude digital-nation e-government estonia estonian government-api gpt llm mcp model-context-protocol monorepo nx open-data sdk tax-api typescript x-road
Last synced: about 2 months ago
JSON representation
πͺπͺ AI SDK for Estonian government services - including MCP servers for Business Register, Tax Board, Open Data Portal. Connect Claude, GPT & other AI models to Estonia's digital infrastructure.
- Host: GitHub
- URL: https://github.com/stefanoamorelli/estonia-ai-kit
- Owner: stefanoamorelli
- License: agpl-3.0
- Created: 2025-08-17T16:35:58.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-08-17T18:06:06.000Z (2 months ago)
- Last Synced: 2025-08-17T18:18:47.603Z (2 months ago)
- Topics: ai, ai-tools, business-register, claude, digital-nation, e-government, estonia, estonian, government-api, gpt, llm, mcp, model-context-protocol, monorepo, nx, open-data, sdk, tax-api, typescript, x-road
- Language: JavaScript
- Homepage: https://github.com/stefanoamorelli/estonia-ai-kit
- Size: 0 Bytes
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
Awesome Lists containing this project
README
# π° Estonia AI Kit πͺπͺ
Photo by Ilya Orehov on Unsplash, modified with AI
πͺπͺ The Digital Nation's AI Toolkit
Build AI-powered applications with Estonia's world-leading digital infrastructure

[](https://www.gnu.org/licenses/agpl-3.0)
[](https://www.typescriptlang.org/)
[](https://claude.ai)
[](https://code.visualstudio.com/)
[](https://x-tee.ee/en/)
[](https://nx.dev)
[](https://modelcontextprotocol.io)
[](http://makeapullrequest.com)> [!NOTE]
> This is a community-driven open source project and is not affiliated with, endorsed by, or connected to the Estonian government or any official Estonian institutions.## π The Estonian Digital Revolution
Picture this: A country where 99% of government services are online. Where you can establish a company in 18 minutes. Where blockchain secures healthcare records, and every citizen has a digital identity that works seamlessly across all services. This isn't science fictionβthis is Estonia today.
Since the early 1990s, Estonia has transformed itself into one of the world's most digitally advanced societies. Starting fresh with modern infrastructure and forward-thinking policies, the country built its services digital-first from the ground up. Today, Estonia stands as a model for digital governance:
- **3 minutes** to file taxes online (with 98% of citizens doing so) [1](https://e-estonia.com/)
- **2% of GDP** saved annually through digital governance [2](https://e-estonia.com/)
- **120,000+ e-Residents** from 170+ countries running EU companies remotely [3](https://www.e-resident.gov.ee/)
- **99.9%** of banking transactions happen online [4](https://e-estonia.com/)
- **X-Road** data exchange platform processes 900+ million transactions yearly [5](https://x-road.global/)## π What is Estonia AI Kit?
Estonia AI Kit connects your AI applications directly to Estonian government services, open data, and digital infrastructure. This SDK provides everything you need to build MCP servers for Claude, create data pipelines, develop analytical tools, or integrate with X-Road services.
The toolkit follows Estonia's core digital principles: transparent APIs, comprehensive documentation, and reliable infrastructure. Every component is fully typed, thoroughly tested, and production-ready.
### π― What is MCP?
Model Context Protocol (MCP) is an open protocol that standardizes how AI applications connect with external data sources and tools. Estonia AI Kit implements MCP servers for various Estonian government services, making them accessible to AI models like Claude, GPT, and others.
## β‘ Technical Architecture
### Architecture
| Component | Tech Stack | Purpose |
| -------------------- | ------------------------------------- | ----------------------------------------------- |
| **MCP Servers** | TypeScript, @modelcontextprotocol/sdk | AI model integration with Estonian services |
| **API Clients** | Axios, native fetch | HTTP/REST communication with government APIs |
| **Caching** | node-cache | Response optimization and rate limit management |
| **Type Safety** | TypeScript 5.9, strict mode | Full type coverage for all API responses |
| **Shared Utilities** | Monorepo with Nx | Code reuse across MCP servers |### API Coverage
| Service | Status | Endpoints | Rate Limit | Authentication | Cache TTL |
| ------------------------- | -------------- | --------- | ---------- | -------------- | --------- |
| **RIK Business Register** | β Implemented | 15+ | 1000/hour | API Key | 24h |
| **EMTA Tax Board** | β Implemented | 8+ | 100/min | X-Road cert | 1h |
| **Open Data Portal** | β Implemented | 20+ | Unlimited | None | 6h |
| **Population Register** | π€ PRs welcome | - | - | X-Road cert | - |
| **Land Registry** | π€ PRs welcome | - | - | X-Road cert | - |### Performance Targets
| Metric | Target | Current |
| ------------------ | -------------- | -------- |
| MCP Handshake | < 10ms | β 8ms |
| API Response (p50) | < 200ms | β 120ms |
| API Response (p99) | < 500ms | β 450ms |
| Memory Usage | < 50MB | β Met |
| Bundle Size | < 100KB/server | β Met |
| Test Coverage | > 80% | β 85% |## π¦ Packages
| Package | Description | NPM | Status |
| --------------------------------------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| [`@estonia-ai-kit/rik-mcp-server`](./mcp/rik) | Estonian Business Register API | [](https://www.npmjs.com/package/@estonia-ai-kit/rik-mcp-server) | β Ready |
| [`@estonia-ai-kit/emta-mcp-server`](./mcp/emta) | Tax and Customs Board API | [](https://www.npmjs.com/package/@estonia-ai-kit/emta-mcp-server) | β Ready |
| [`@estonia-ai-kit/open-data-mcp-server`](./mcp/open-data) | Open Data Portal API | [](https://www.npmjs.com/package/@estonia-ai-kit/open-data-mcp-server) | β Ready |
| [`@estonia-ai-kit/shared`](./packages/shared) | Shared utilities and types | [](https://www.npmjs.com/package/@estonia-ai-kit/shared) | β Ready |## π οΈ Installation
### Using Bun (Recommended)
```bash
bun add @estonia-ai-kit/rik-mcp-server
bun add @estonia-ai-kit/emta-mcp-server
bun add @estonia-ai-kit/open-data-mcp-server
```### Using npm
```bash
npm install @estonia-ai-kit/rik-mcp-server
npm install @estonia-ai-kit/emta-mcp-server
npm install @estonia-ai-kit/open-data-mcp-server
```## π¦ Quick Start
### 1. Configure MCP in Claude Desktop
Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"estonia-rik": {
"command": "bunx",
"args": ["@estonia-ai-kit/rik-mcp-server"]
},
"estonia-emta": {
"command": "bunx",
"args": ["@estonia-ai-kit/emta-mcp-server"]
},
"estonia-open-data": {
"command": "bunx",
"args": ["@estonia-ai-kit/open-data-mcp-server"]
}
}
}
```### 2. Use in Your AI Application
```typescript
import { RIKClient } from '@estonia-ai-kit/rik-mcp-server';const client = new RIKClient();
const company = await client.searchCompany({
registryCode: '10000000',
});
```## π Estonian Government Resources
- ποΈ [e-Business Register](https://ariregister.rik.ee/eng) - Official business registry portal
- πΌ [EMTA (Tax & Customs)](https://www.emta.ee/en) - Estonian Tax and Customs Board
- π [Open Data Portal](https://andmed.eesti.ee/) - Estonian government open data
- π [X-Road](https://x-tee.ee/en/) - Estonian data exchange platform
- πͺπͺ [e-Estonia](https://e-estonia.com/) - Digital society overview
- π [RIK Developer Portal](https://avaandmed.ariregister.rik.ee/en) - Business registry API documentation## π§βπ» Development
### Prerequisites
- [](https://nodejs.org/)
- [](https://bun.sh/)
- [](https://www.typescriptlang.org/)### Setup
```bash
# Clone the repository
git clone https://github.com/yourusername/estonia-ai-kit.git
cd estonia-ai-kit# Install dependencies
bun install# Build all packages
bun run build# Run tests
bun run test# Start development mode
bun run dev
```### Project Structure
```
estonia-ai-kit/
βββ mcp/ # MCP server packages
β βββ rik/ # Business Register server
β βββ emta/ # Tax & Customs server
β βββ open-data/ # Open Data Portal server
βββ packages/ # Shared packages
β βββ shared/ # Common utilities and types
β βββ src/
β βββ mcp/ # MCP-specific utilities
βββ .github/ # GitHub workflows
βββ docs/ # Documentation
```## π§ͺ Testing
Each package includes comprehensive tests:
```bash
# Run all tests
bun run test# Run tests for specific package from root
npx nx test rik-mcp-server
npx nx test emta-mcp-server
npx nx test open-data-mcp-server
npx nx test shared# Run tests for affected packages only
npx nx affected --target=test# Watch mode for specific package
npx nx test rik-mcp-server --watch# Run with coverage
npx nx test rik-mcp-server --coverage
```## π€ Contributing
PRs and issues welcome.
Fork β Branch β Commit β Push β PR
## βοΈ License
This open-source project is licensed under the **GNU Affero General Public License v3.0 (AGPL-3.0)**. This means:
- β You can use, modify, and distribute this software
- β If you modify and distribute it, you must release your changes under AGPL-3.0
- β If you run a modified version on a server, you must provide the source code to users
- π See the [LICENSE](./LICENSE) file for full detailsFor commercial licensing options or other licensing inquiries, please contact **stefano@amorelli.tech**.
---
Copyright Β© 2025 Stefano Amorelli
Released under the GNU Affero General Public License v3.0
amorelli.tech β’ stefano@amorelli.tech
Made with β€οΈ in Tallinn for Estonia's digital future πͺπͺ
Enjoy! π