arca-mcp
by ramide1
README.md
# arca-mcp
MCP server for ARCA (Agencia de Recaudacion y Control Aduanero) - provides tools via stdio transport.
## Installation
```bash
bun install
```
## Usage
```bash
# Start the server
bun run start
# Type check (no emission due to noEmit: true in tsconfig)
bun tsc
```
## Environment Variables
Required for AFIP authentication (WS-AAA):
- `ARCA_WSAA_CERT`: Certificate file (default: `ghf.crt`)
- `ARCA_WSAA_PRIVATE_KEY`: Private key file (default: `ghf.key`)
- `ARCA_WSAA_PASSWORD`: Private key password (default: empty)
- `ARCA_TEST_MODE`: Set to `false` for production; any other value (or unset) uses homologation
- `ARCA_FETCH_LIMIT`: SOAP retry attempts (default: `3`)
Certificate and key files are expected in the current directory (or `currentDir` tool parameter).
## Important Notes
- **CUIT format**: All tools require CUIT in `XX-XXXXXXXX-X` format (validated via Zod)
- **WSDL caching**: WSDL files are downloaded to `./{service}_{env}.wsdl` (e.g., `wsfe_test.wsdl`) and reused for 1 year
- **OpenSSL required**: The `signTra` function uses `openssl cms` for signing; ensure OpenSSL is installed and in PATH
- **SOAP services**: Communicates with AFIP's WS-FE (electronic invoicing) and WSAA (authentication) services
- **Temp files**: Creates `TRA_*.xml` and `TA_*.xml` files in the directory specified by `currentDir` (default: `./`)
- **TypeScript**: Strict type checking enabled; `moduleResolution: bundler` (Bun-specific)
## Project Structure
```
src/
├── main.ts # Entry point
├── tool.ts # MCP tool definitions (AFIP service wrappers)
├── arcaService.ts # SOAP client implementation
└── interface.ts # Unused (empty)
```
## Development Notes
- No test framework configured; manual testing via MCP tools recommended
- No lint/formatter config in repo (though `.gitignore` references ESLint/Prettier)
- Uses Bun's built-in test runner? Not configured
- WSDL downloads occur on first use or when cached file >1 year old
## License
MITThis server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues