MCP server for invoice automation — extracts, maps, and outputs standardized invoices from Excel files
Project description
Invoice RPA MCP Server
Excel 인보이스 파일에서 데이터를 자동 추출하여 표준 출력 템플릿으로 매핑하는 MCP 서버입니다. Claude Desktop, Claude Code, Cursor 등 AI 에이전트에서 인보이스 처리를 호출할 수 있습니다.
Quick Start
요구사항
- Python 3.10+
- uv 패키지 매니저
mcp.json 등록
AI 클라이언트 설정에 아래를 추가하면 자동으로 다운로드+실행됩니다:
{
"mcpServers": {
"invoice-rpa": {
"command": "uvx",
"args": ["invoice-rpa-mcp"],
"env": {
"INVOICE_INPUT_FOLDER": "/path/to/input",
"INVOICE_OUTPUT_FOLDER": "/path/to/output",
"INVOICE_CUSTOMER_MASTER_PATH": "/path/to/customer_master.csv",
"INVOICE_ITEM_LIST_PATH": "/path/to/itemList.csv"
}
}
}
}
env의 4개 경로를 실제 환경에 맞게 수정하세요. Windows에서는 슬래시(/)를 사용합니다:"C:/Invoice/input"
설정 파일 위치
| 클라이언트 | 파일 위치 |
|---|---|
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Claude Code | 프로젝트 루트 .mcp.json 또는 claude mcp add CLI |
| Cursor | 프로젝트 루트 .cursor/mcp.json |
Claude Code CLI로 추가하는 경우:
claude mcp add invoice-rpa -- uvx invoice-rpa-mcp
Available Tools
| Tool | 설명 | 파라미터 |
|---|---|---|
process_all_invoices |
input 폴더의 모든 인보이스 일괄 처리 | — |
process_single_invoice |
특정 파일 1개 처리 | filename (str) |
list_input_files |
처리 대상 파일 목록 및 크기 조회 | — |
get_server_config |
현재 서버 설정 및 로드된 데이터 건수 조회 | — |
Environment Variables
모든 환경변수는 INVOICE_ 접두사를 사용합니다.
| 환경변수 | 필수 (uvx) | 기본값 | 설명 |
|---|---|---|---|
INVOICE_INPUT_FOLDER |
필수 | ./input |
입력 파일 디렉토리 |
INVOICE_OUTPUT_FOLDER |
필수 | ./output |
출력 파일 디렉토리 |
INVOICE_CUSTOMER_MASTER_PATH |
필수 | ./variation_data/customer_master.csv |
고객 마스터 CSV |
INVOICE_ITEM_LIST_PATH |
필수 | ./variation_data/itemList.csv |
아이템 리스트 CSV |
INVOICE_MCP_TRANSPORT |
선택 | stdio |
Transport: stdio, streamable-http, sse |
INVOICE_MCP_HOST |
선택 | 0.0.0.0 |
HTTP/SSE 바인딩 호스트 |
INVOICE_MCP_PORT |
선택 | 8000 |
HTTP/SSE 포트 |
uvx는 격리 환경에서 실행되므로 기본 경로가 의미 없습니다. 4개 경로는 반드시 설정하세요. 로컬 개발(uv run --directory)에서는 프로젝트 기본 경로가 동작하므로 생략 가능합니다.
Transport 모드별 설정
1. stdio (권장)
AI 클라이언트가 로컬에서 프로세스를 직접 실행합니다.
uvx (권장) — 소스코드 불필요, PyPI에서 자동 다운로드:
{
"mcpServers": {
"invoice-rpa": {
"command": "uvx",
"args": ["invoice-rpa-mcp"],
"env": {
"INVOICE_INPUT_FOLDER": "/path/to/input",
"INVOICE_OUTPUT_FOLDER": "/path/to/output",
"INVOICE_CUSTOMER_MASTER_PATH": "/path/to/customer_master.csv",
"INVOICE_ITEM_LIST_PATH": "/path/to/itemList.csv"
}
}
}
}
uv run — 소스코드를 클론한 로컬 개발 환경:
{
"mcpServers": {
"invoice-rpa": {
"command": "uv",
"args": [
"run",
"--directory", "/path/to/invoice_rpa",
"invoice-rpa-mcp"
]
}
}
}
--directory로 프로젝트 루트를 지정하면 기본 경로(./input등)가 동작하므로env를 생략할 수 있습니다. 커스텀 경로가 필요하면env블록을 추가하세요.
2. Streamable HTTP (원격)
서버에서 HTTP로 호스팅하고 네트워크를 통해 접속합니다. 경로 설정은 서버 측에서 관리합니다.
서버 실행:
INVOICE_MCP_TRANSPORT=streamable-http \
INVOICE_INPUT_FOLDER=/path/to/input \
INVOICE_OUTPUT_FOLDER=/path/to/output \
INVOICE_CUSTOMER_MASTER_PATH=/path/to/customer_master.csv \
INVOICE_ITEM_LIST_PATH=/path/to/itemList.csv \
uvx invoice-rpa-mcp
클라이언트 mcp.json:
{
"mcpServers": {
"invoice-rpa": {
"type": "streamable-http",
"url": "http://서버IP:8000/mcp"
}
}
}
3. SSE (레거시 원격)
Streamable HTTP를 지원하지 않는 클라이언트용입니다. endpoint가 /sse인 것 외에는 동일합니다.
서버 실행:
INVOICE_MCP_TRANSPORT=sse \
INVOICE_INPUT_FOLDER=/path/to/input \
INVOICE_OUTPUT_FOLDER=/path/to/output \
INVOICE_CUSTOMER_MASTER_PATH=/path/to/customer_master.csv \
INVOICE_ITEM_LIST_PATH=/path/to/itemList.csv \
uvx invoice-rpa-mcp
클라이언트 mcp.json:
{
"mcpServers": {
"invoice-rpa": {
"type": "sse",
"url": "http://서버IP:8000/sse"
}
}
}
동작 확인
# MCP Inspector로 테스트 (브라우저에서 tool 목록 확인 및 호출)
npx @modelcontextprotocol/inspector uvx invoice-rpa-mcp
입력 파일 형식
파일명 패턴:
Contract No.DRBVN XXXXX (DD-MM-YYYY) 고객명-위치.xlsx
예시:
Contract No.DRBVN 12345 (15-01-2024) KUBOTA-OSK, JAPAN.xlsx
지원 고객
- 미국: Caterpillar, Bobcat MHE/MT/CTL, GPM, YCENA, JohnDeere
- 일본: Kubota, Yanmar, Takeuchi, CJL, Hitachi, Komatsu
- 인도: Caterpillar India, JCB India, Bobcat India
- 유럽: VolvoFrance, Bobcat CZ, YanmarFrance
개발
# 클론 및 설치
git clone https://github.com/your-repo/invoice_rpa.git
cd invoice_rpa
uv sync
# 로컬 실행
uv run invoice-rpa-mcp
# Standalone 배치 처리
uv run python invoice_rpa_mcp/main.py
# MCP Inspector 테스트
npx @modelcontextprotocol/inspector uv run invoice-rpa-mcp
프로젝트 구조
invoice_rpa/
├── invoice_rpa_mcp/ # Python 패키지
│ ├── mcp_server.py # MCP 서버 진입점
│ ├── main.py # Standalone 배치 진입점
│ ├── invoice_processor.py # 처리 오케스트레이션
│ ├── data_extractor.py # 데이터 추출
│ ├── mapper.py # 데이터 매핑
│ ├── customer_identifier.py # 고객 식별
│ ├── template_selector.py # 템플릿 선택
│ ├── sequence_manager.py # 인보이스 번호 시퀀싱
│ └── utils/ # 유틸리티
├── config/ # JSON 설정 파일 (패키지에 포함)
├── templates/ # Excel 출력 템플릿 (패키지에 포함)
├── variation_data/ # 사용자 CSV 데이터
│ ├── customer_master.csv # 고객 마스터
│ └── itemList.csv # 제품 카탈로그
├── input/ # 입력 파일 디렉토리
└── output/ # 출력 파일 디렉토리
신규 고객 추가
config/customer_patterns.json에 별칭 추가config/customer_types.json의 해당 지역에 추가variation_data/customer_master.csv에 행 추가variation_data/itemList.csv에 제품 항목 추가
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file invoice_rpa_mcp-0.2.0.tar.gz.
File metadata
- Download URL: invoice_rpa_mcp-0.2.0.tar.gz
- Upload date:
- Size: 252.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
842ce7d19dc5ff3d63547250b77071c59a15b50280c3ff39e1e289afd5e315a5
|
|
| MD5 |
e85c27951b79b3e71e10fa108b284dcd
|
|
| BLAKE2b-256 |
1bfefe2fdc97b7fe270308ae8194ba71c0c9b5e5f73718a8415c9867f67217af
|
File details
Details for the file invoice_rpa_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: invoice_rpa_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 197.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7dab990f0b95fb376311e79f35fb2848beade5108f6b86b4c4bbe1aedd921de6
|
|
| MD5 |
a9d50103dc44291d38d5cf0b8be75fd6
|
|
| BLAKE2b-256 |
7341468c13680d0a03d4786554a48f180ca9bcb95c867287c726b64e9816d3b6
|