Sandbox GSTR-1 MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level | INFO |
| SANDBOX_API_KEY | Yes | Your Sandbox API key | |
| SANDBOX_API_URL | No | Base URL for the Sandbox API | https://api.sandbox.co.in |
| SANDBOX_API_SECRET | Yes | Your Sandbox API secret | |
| SANDBOX_API_VERSION | No | API version | 1.0.0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_taxpayer_sessionA | Generate a taxpayer session (access token) valid for 6 hours. This is Step 1 of the GSTR-1 filing workflow. The returned access_token must be passed to all subsequent tool calls. Args: gstin: 15-digit GST Identification Number (e.g. "29AAACQ3770E000") username: GST portal username of the taxpayer Returns: Dict with access_token and session metadata, or an error dict. |
| save_gstr1_dataA | Upload GSTR-1 data to the GST portal for validation (Step 2). After calling this tool, use check_return_status() with the returned reference_id to poll until the status is COMPLETED before proceeding. Args: access_token: Taxpayer session token from generate_taxpayer_session() gstin: 15-digit GST Identification Number ret_period: Return period in MMYYYY format (e.g. "032026" for March 2026) gstr1_data: Complete GSTR-1 payload dict containing b2b, b2cl, b2cs, hsn, docs sections etc. Returns: Dict with reference_id for status polling, or an error dict. |
| check_return_statusA | Poll the status of a save or proceed operation (Step 3). Call this repeatedly (every 5 seconds) until status == "COMPLETED". Args: access_token: Taxpayer session token gstin: 15-digit GST Identification Number ret_period: Return period in MMYYYY format reference_id: The reference_id returned by save_gstr1_data() or proceed_to_file() Returns: Dict with status field ("PENDING", "PROCESSING", "COMPLETED", "ERROR"). |
| proceed_to_fileA | Initialise the filing process after data validation is complete (Step 4). Poll check_return_status() with the returned reference_id until COMPLETED before calling get_gstr1_summary(). Args: access_token: Taxpayer session token gstin: 15-digit GST Identification Number ret_period: Return period in MMYYYY format is_nil: "Y" for a nil return, "N" for a regular return (default "N") Returns: Dict with reference_id for status polling, or an error dict. |
| get_gstr1_summaryA | Retrieve the GSTR-1 summary including sec_sum and chksum needed for filing (Step 5). The sec_sum and chksum values returned here must be passed directly to file_gstr1(). Args: access_token: Taxpayer session token gstin: 15-digit GST Identification Number ret_period: Return period in MMYYYY format summary_type: "long" for full section detail (default), "short" for totals only Returns: Dict with sec_sum array and chksum string, or an error dict. |
| generate_evc_otpA | Generate an Electronic Verification Code (EVC) OTP for filing (Step 6). The OTP is sent to the mobile number and email registered with the GST portal. Pass the received OTP to file_gstr1(). Args: access_token: Taxpayer session token pan: Permanent Account Number associated with the GSTIN (e.g. "ABCCQ3123E") Returns: Dict with OTP generation status, or an error dict. |
| file_gstr1A | Submit the final GSTR-1 return with EVC OTP verification (Step 7 — final step). Args: access_token: Taxpayer session token gstin: 15-digit GST Identification Number ret_period: Return period in MMYYYY format pan: Permanent Account Number otp: EVC OTP received after calling generate_evc_otp() sec_sum: Section summaries array from get_gstr1_summary() chksum: Checksum string from get_gstr1_summary() Returns: Dict with filing acknowledgement number (ARN) and status, or an error dict. |
| convert_excel_to_sandbox_payloadA | Convert a GSTR-1 Excel file (output of the unified-gstr1 skill) into the JSON payload format required by the Sandbox.co save_gstr1_data() API. Reads the b2b, b2cl, b2cs, and hsn sheets from the Excel file and maps each row to the corresponding Sandbox.co API structure. Args: excel_path: Absolute path to the GSTR-1 Excel file Returns: Dict with the formatted payload ready to pass to save_gstr1_data(), or an error dict. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool maps to a distinct step in the GSTR-1 filing workflow. Even the two filing-related tools are clearly separated by validation, polling, and EVC OTP phases, and the only polling tool is explicitly scoped to operation status.
All tool names use a consistent snake_case verb_led pattern: generate_, save_, check_, proceed_to_, get_, file_, convert_. The naming reliably communicates what each tool does without mixing conventions.
Eight tools is well-scoped for this server: seven correspond directly to the filing workflow steps, plus one Excel-to-payload converter. There is no redundant or filler tool.
The surface covers the full end-to-end filing lifecycle: session generation, data upload, status polling, filing initiation, summary retrieval, EVC OTP generation, and final submission. No workflow step is missing, and every flow ends in a usable result or explicit error.