PBS MCP AI Enabled API Server
Supports environment variable configuration for storing PBS API subscription keys and other configuration settings.
Provides repository access for cloning and installing the PBS MCP server.
Used for package management and running the PBS MCP server through predefined scripts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PBS MCP AI Enabled API ServerWhat's the price of amoxicillin 500mg capsules?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pharmaceutical Benefits Scheme (PBS) MCP AI Enabled API Server 
A standalone Model Context Protocol (MCP) server for accessing the Australian Pharmaceutical Benefits Scheme (PBS) API.
About the Author
This PBS MCP server was developed by [Matthew Cage], Founder of https://ai-advantage.au, specialist in Automation, AI Engineering and AI integration and healthcare data systems.
Collaborate with me: https://www.linkedin.com/in/digitalmarketingstrategyexpert/
Related MCP server: OpenFDA
Overview
This project provides a standalone MCP server that allows AI models to access the Australian Pharmaceutical Benefits Scheme (PBS) API, which contains information about medicines, pricing, and availability in Australia.
The project is built for the Public API, but can easily be adapted to the private API if you have been granted developer access.
The PBS API provides programmatic access to PBS data, including medicine listings, pricing, and availability. This MCP server makes it easy to integrate PBS data into AI workflows.
The MCP is available via HTTP and CLI.
Please be aware of the rate limits for the PBS and adjust your request frequency. I recommend a periodic call to store the information you require from the API and update it on a weekly basis.
MCP Server Features 
This MCP server implements the following Model Context Protocol features:
Tools: Provides tools for querying the PBS API endpoints, allowing AI models to access pharmaceutical data
Transport Layers: Supports both stdio and HTTP/SSE transport layers
Error Handling: Comprehensive error handling for API rate limits and authentication issues
LLM Integration: Receives tool calls and prompts directly from LLM components, enabling seamless AI interaction with PBS data
How It Works
The MCP Client :
Receives Tool Calls: When an LLM (like Claude) needs pharmaceutical data, it sends a tool call to this server
Processes Prompts: Interprets natural language prompts about medication information
Executes API Queries: Translates the requests into appropriate PBS API calls
Returns Structured Data: Sends back formatted pharmaceutical data that the LLM can use in its responses
This enables AI assistants to access up-to-date PBS information without needing to have this data in their training.
Installation
Clone this repository:
git clone <repository-url> cd pbs-mcp-standaloneInstall dependencies:
npm installBuild the project:
npm run build
Usage
Starting the Server 
The PBS MCP server can be run in different modes:
Stdio Mode (Default)
This mode is compatible with the MCP protocol and communicates via standard input/output streams:
npm startOr use the provided start script:
./start.shHTTP Mode with SSE Support
This mode starts an HTTP server with Server-Sent Events (SSE) support:
npm run start:httpOr use the provided start script:
./start.sh http 3000Where 3000 is the port number to listen on.
Command-Line Interface
The PBS MCP server can also be used as a command-line tool:
npm run cli -- <command>Or use the provided start script:
./start.sh cli <command>For example:
./start.sh cli infoUsing as a Command-Line Tool
To use this MCP server as a command-line tool:
Build the project:
npm run buildRun the CLI with the desired command:
npm run cli -- <command>Or use the start script:
./start.sh cli <command>
Integrating with MCP Clients 
This server can be integrated with any MCP-compatible client, such as:
Local AI Editors and AI/LLM Servers
Other AI assistants that support the Model Context Protocol
Custom applications using the MCP client libraries
Client Configuration Example
Here's an example of how to configure this server with an MCP client:
{
"mcpServers": {
"pbs-api": {
"command": "node",
"args": ["path/to/pbs-mcp-standalone/build/index.js"],
"env": {
"PBS_API_SUBSCRIPTION_KEY": "your-subscription-key-here"
}
}
}
}Accessing the Server from a Client
To access this MCP server from a client:
For Claude Desktop or other MCP-compatible AI assistants:
Configure the assistant to use this server as an MCP tool provider
The assistant will automatically discover and use the tools provided by this server
The LLM can send natural language prompts about medications that will be processed by the server
For custom applications:
Use the HTTP API endpoints described below
Connect to the SSE endpoint for real-time tool events
Or spawn the server process and communicate via stdin/stdout
Example LLM Prompts
The server can interpret various prompts from LLMs, such as:
"Find information about metformin in the PBS"
"What is the PBS code for insulin?"
"List all prescribers who can prescribe antibiotics"
"Get the latest pricing for asthma medications"These natural language prompts are translated into appropriate PBS API calls.
API Tool Parameters
The PBS API tool can be used with the following parameters:
{
"endpoint": "prescribers",
"method": "GET",
"params": {
"get_latest_schedule_only": "true",
"limit": "20"
}
}Parameters
endpoint(string, required): The specific PBS API endpoint to access (e.g., "prescribers", "item-overview")method(string, optional): HTTP method to use (GET is recommended for most PBS API operations). Default: "GET"params(object, optional): Query parameters to include in the requestsubscriptionKey(string, optional): Custom subscription key. If not provided, the default public key will be usedtimeout(number, optional): Request timeout in milliseconds. Default: 30000
HTTP API 
When running in HTTP mode, the following endpoints are available:
Health Check
GET /healthReturns the status of the server.
List Tools
GET /toolsReturns a list of available tools.
SSE Endpoint
GET /sseEstablishes an SSE connection and sends tool events.
Tool Invocation (SSE)
POST /sse/:toolNameInvokes a tool and sends the result via SSE.
Tool Invocation (REST)
POST /api/:toolNameInvokes a tool and returns the result as JSON.
Command-Line Interface 
The PBS MCP server can be used as a command-line tool with the following commands:
List Endpoints
./start.sh cli list-endpointsLists all available PBS API endpoints.
Get API Information
./start.sh cli infoReturns information about the PBS API.
Query Prescribers
./start.sh cli prescribers [options]Options:
-l, --limit <number>: Number of results per page (default: 10)-p, --page <number>: Page number (default: 1)-c, --pbs-code <code>: Filter by PBS code-s, --schedule-code <code>: Filter by schedule code-t, --prescriber-type <type>: Filter by prescriber type-f, --fields <fields>: Specific fields to return--latest: Get only the latest schedule
Query Item Overview
./start.sh cli item-overview [options]Options:
-l, --limit <number>: Number of results per page (default: 10)-p, --page <number>: Page number (default: 1)-s, --schedule-code <code>: Filter by schedule code-f, --fields <fields>: Specific fields to return--latest: Get only the latest schedule
Query Any Endpoint
./start.sh cli query <endpoint> [options]Options:
-m, --method <method>: HTTP method (default: GET)-p, --params <json>: Query parameters as JSON string-k, --subscription-key <key>: Custom subscription key-t, --timeout <milliseconds>: Request timeout in milliseconds
Start HTTP Server
./start.sh cli serve [options]Options:
-p, --port <number>: Port to listen on (default: 3000)
Available Endpoints
The PBS API provides several endpoints for accessing different types of data:
/- Root endpoint, provides API information and changelog/prescribers- Information about prescribers/item-overview- Detailed information about PBS items/items- Basic information about PBS items/schedules- Information about PBS schedules/atc-codes- Anatomical Therapeutic Chemical (ATC) classification codes/organisations- Information about organisations/restrictions- Information about restrictions/parameters- Information about parameters/criteria- Information about criteria/copayments- Information about copayments/fees- Information about fees/markup-bands- Information about markup bands/programs- Information about programs/summary-of-changes- Summary of changes
For a complete list of endpoints, see the PBS API documentation.
Example Usage
Get API Information
{
"endpoint": ""
}Get Prescribers
{
"endpoint": "prescribers",
"params": {
"get_latest_schedule_only": "true",
"limit": "10"
}
}Get Item Overview with Latest Schedule
{
"endpoint": "item-overview",
"params": {
"get_latest_schedule_only": "true",
"limit": "5"
}
}Get Prescribers with Specific PBS Code
{
"endpoint": "prescribers",
"params": {
"pbs_code": "10001J",
"get_latest_schedule_only": "true"
}
}Authentication
The tool uses a subscription key for accessing the PBS API. You can obtain your own key by registering on the PBS Developer Portal.
For development purposes, see the .env.example file for configuration details.
Obtaining a PBS API Subscription Key
To obtain your own PBS API subscription key, follow these steps:
Visit the PBS Data API Portal:
Create an Account:
Click on "Sign Up" to create a new account
Fill in your details and verify your email address
Subscribe to the PBS API:
Once logged in, navigate to the "Products" section
Select the "PBS Public API v3" product
Click "Subscribe" to request access to the API
Retrieve Your Subscription Key:
After your subscription is approved, go to your profile
Navigate to "Subscriptions" or "API Keys" section
Copy your primary or secondary key
Configure Your Environment:
Create a
.envfile based on the.env.exampletemplateReplace
your-subscription-key-herewith your actual subscription key:PBS_API_SUBSCRIPTION_KEY=your-actual-subscription-key
Note: The PBS Public API is rate-limited to one request per 20 seconds. This limit is shared among all users of the public API. For higher rate limits or access to embargo data (future schedules), you may need to apply for special access through the PBS Developer Program.
Limitations
The PBS Public API is rate-limited to one request per 20 seconds (shared among all users)
Only the current schedule and those published in the past 12 months are available via the Public API
Some endpoints require specific parameters to be provided
The API structure and endpoints may change over time
Additional Resources
License
This project is licensed under the MIT License - see the LICENSE file for details.
❤️
Available Tools
1 toolpbs_apiC
Access the Australian Pharmaceutical Benefits Scheme (PBS) API to retrieve information about medicines, pricing, and availability.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | The specific PBS API endpoint to access (e.g., "prescribers", "item-overview") | |
| method | No | HTTP method to use (GET is recommended for most PBS API operations) | GET |
| params | No | Query parameters to include in the request (e.g., {"get_latest_schedule_only": "true"}) | |
| subscriptionKey | No | Custom subscription key (if not provided, the default public key will be used) | |
| timeout | No | Request timeout in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving information, implying a read operation, but doesn't cover critical aspects like authentication requirements (hinted at by the subscriptionKey parameter), rate limits, error handling, or response formats. This is inadequate for a 5-parameter API tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary details. It's front-loaded and wastes no words, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain return values, error conditions, or behavioral traits like authentication or rate limits. This leaves significant gaps for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no specific parameter semantics beyond the general API context. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Access the Australian Pharmaceutical Benefits Scheme (PBS) API to retrieve information about medicines, pricing, and availability.' It specifies the verb ('access'), resource ('PBS API'), and scope ('medicines, pricing, and availability'). However, it doesn't differentiate from siblings (none exist), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lacks context about prerequisites (e.g., API access, authentication needs) or typical use cases. With no siblings, differentiation isn't needed, but general usage context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool has a clear and distinct purpose, making it impossible for an agent to misselect between non-existent alternatives.
A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The tool name 'pbs_api' follows a straightforward and descriptive pattern without any conflicting conventions.
A single tool is too few for the apparent scope of accessing a comprehensive API for medicines, pricing, and availability. This minimal toolset likely forces multiple functionalities into one tool, which can be confusing and inefficient for agents trying to perform specific operations like searching, filtering, or retrieving detailed information.
The tool surface is severely incomplete for the domain of pharmaceutical benefits information. A single tool cannot adequately cover the expected operations such as searching medicines, retrieving pricing details, checking availability, or filtering by criteria, leading to significant gaps that will cause agent failures in complex tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server exposing US hospital procedure cost data to AI assistants
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol server providing AI assistants with access to healthcare data tools, including FDA drug information, PubMed research, health topics, clinical trials, and medical terminology lookup.778126MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server for querying drug information from the OpenFDA API. Features Retrieve drug label information by brand name Retrieve drug information by generic (active ingredient) name Get all brand versions of a generic drug Get adverse event (side effect) reports for a drug7374MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that provides seamless access to Moodle developer documentation from moodledev.io. It enables AI assistants and other MCP clients to search, browse, and retrieve Moodle development documentation with version-specific support.4MIT
- AlicenseNot gradedqualityDmaintenanceModel Context Protocol server that standardizes tool discovery, execution, and context management for AI applications.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/matthewdcage/pbs-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server