ghn_list_provinces
List provinces
List all provinces and cities with their ProvinceID. Use the ProvinceID with ghn_list_districts. Uses the district address model. GHN: GET /master-data/province.
Takes no parameters.
io.usefulapiPublished by usefulapi.ioOfficial publisherv1.0.1Updated Nov 8, 2026
Quote shipping fees, track orders, and create or cancel shipping orders in GHN.
The publisher's own server: Ably MCP by usefulapi
GHN MCP by usefulapi's hosted MCP server (ghn.usefulapi.io), published by usefulapi.io; no sign-in required; Streamable HTTP; 9 tools.
No AI overview yet: these facts come from the registry entry and the server itself.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.usefulapi%2Fghn/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"ghn-by-usefulapi": {
"type": "http",
"url": "https://ghn.usefulapi.io/mcp"
}
}
}List provinces
List all provinces and cities with their ProvinceID. Use the ProvinceID with ghn_list_districts. Uses the district address model. GHN: GET /master-data/province.
Takes no parameters.
List districts
List the districts of one province with DistrictID and service support (SupportType: 0 locked, 1 pickup only, 2 delivery only, 3 both). GHN: GET /master-data/district?province_id=.
province_idrequiredList wards
List the wards of one district. Use WardCode (a string) for ghn_calculate_fee and ghn_create_order ward fields. GHN: GET /master-data/ward?district_id=.
district_idrequiredList delivery services
List the delivery services GHN offers on a route for this shop. Returns service_type_id (2 = under 20 kg, 5 = 20 kg or more or multi-parcel). Call it before ghn_calculate_fee. GHN: POST /v2/shipping-order/available-services.
to_district_idrequiredfrom_district_idrequiredCalculate shipping fee
Quote the shipping fee for a parcel to a ward, before creating an order. Quote only: no order is created. GHN: POST /v2/shipping-order/fee.
itemswidthcouponheightlengthweightrequiredcod_valueto_ward_coderequiredfrom_ward_codeto_district_idrequiredinsurance_valueservice_type_idrequired+1 moreGet an order
Get the full details of one shipping order by its GHN tracking code: status, parties, COD, fees and items. GHN: GET /v2/shipping-order/detail?order_code=.
order_coderequiredGet an order by your code
Get the full details of one shipping order by your own client_order_code instead of the GHN tracking code. GHN: GET /v2/shipping-order/detail-by-client-code?client_order_code=.
client_order_coderequiredCreate a shipping order
CREATES A REAL SHIPPING ORDER: GHN picks up and delivers the parcel and can charge the shop or collect cash on delivery (COD) from the recipient. Call only after the user explicitly confirms the recipient, the parcel and the fee in this chat (use ghn_calculate_fee first). client_order_code is required: a retry with the same code returns the first order and creates no duplicate. Set to_district_name when is_new_to_address is false. Send content or items. GHN: POST /v2/shipping-order/create.
noteitemswidthrequiredheightrequiredlengthrequiredweightrequiredcontentto_namerequiredto_phonerequiredcod_amountto_addressrequiredto_ward_namerequired+8 moreCancel shipping orders
CANCELS REAL SHIPPING ORDERS. The batch is all-or-nothing: one unknown or foreign order code cancels nothing. Call only after the user explicitly confirms the order codes. An order that can no longer be cancelled returns result false. GHN: POST /v2/switch-status/cancel.
reasonorder_codesrequiredreason_code75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.
Declare a license in the repository or the registry entry.
io.usefulapiOfficial publisher
Ably MCP by usefulapi's hosted MCP server, published by usefulapi.io; no sign-in required; Streamable HTTP; 15 tools.
io.usefulapiOfficial publisher
GHTK MCP by usefulapi's hosted MCP server, published by usefulapi.io; no sign-in required; Streamable HTTP; 8 tools.
io.usefulapiOfficial publisher
Gandi MCP by usefulapi's hosted MCP server, published by usefulapi.io; no sign-in required; Streamable HTTP; 8 tools.
io.usefulapiOfficial publisher
dilisense MCP by usefulapi's hosted MCP server, published by usefulapi.io; no sign-in required; Streamable HTTP; 5 tools.
io.usefulapiOfficial publisher
Delfi PMS MCP by usefulapi's hosted MCP server, published by usefulapi.io; no sign-in required; Streamable HTTP; 17 tools.