Open Payments MCP for AI. Audit financial payments between industry and doctors.
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
Open Payments (CMS Physician Data) connects your AI client directly to official CMS records, letting you audit financial relationships in healthcare.
Use this server to search physicians by NPI or name and query massive payment datasets for compliance checks, market research, or journalism.
It gives you deep transparency into how drug companies pay doctors and hospitals.
What your AI can do
List datasets
Lists all currently available reporting cycles and payment category datasets within the system.
Get dataset
Retrieves the technical metadata and column definitions for a specific Open Payments dataset ID.
Query dataset
Runs a filtered search against a specified dataset, allowing you to select specific records using SQL-like filters.
Find details on healthcare providers by inputting their Name, NPI number, or specialty.
Look up official teaching hospitals using either the hospital's name or physical address.
Retrieve a list of all reporting cycles and payment datasets available in the CMS system.
Pull metadata—column definitions, data types, etc.—for any specific dataset ID you need to query.
Run deep queries against massive payment datasets using filters and selections to extract precise information.
Ask an AI about this
Waiting for input…
Open Payments (CMS Physician Data): 5 Tools for Healthcare Audits
These five tools let you search specific providers, locate teaching hospitals, list datasets, check schemas, and run advanced queries against millions of payment records.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using Open Payments (CMS Physician Data) on VinkiusList Datasets
Lists all currently available reporting cycles and payment category datasets within the system.
Get Dataset
Retrieves the technical metadata and column definitions for a specific Open Payments...
Query Dataset
Runs a filtered search against a specified dataset, allowing you to select specific...
Search Physicians
Searches and locates specific healthcare providers using their NPI number, name, or...
Search Teaching Hospitals
Finds teaching hospitals by searching using either the hospital’s full name or its...
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with Open Payments (CMS Physician Data), then connect any of our 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Open Payments (CMS). All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This connection provides 5 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Manually tracking healthcare spending across multiple years is a nightmare.
Right now, doing an audit means jumping between CMS websites, downloading massive CSV files, and running manual Excel queries. You copy names into one sheet, then use the NPI to find them in another database, cross-referencing payment amounts manually—it's slow, and you always risk missing a key record or misinterpreting a column header.
With this MCP server, your agent handles all that manual work. You tell it: 'Show me all payments over $50k to cardiology in the last three years.' It executes the necessary `list_datasets`, selects the right records via `query_dataset`, and hands you the aggregated result—no copy-pasting required.
The Open Payments (CMS Physician Data) MCP Server delivers auditable financial insights.
You don't have to guess which datasets are available or what the column names mean. You simply call `get_dataset` and instantly get a technical breakdown of every field—the data types, the required inputs. This step alone cuts out hours of documentation reading.
Now you can build workflows that reliably chain together searches: find the hospital via `search_teaching_hospitals`, then use its ID to query all associated payments in `query_dataset`. It's a structured pipeline, not a series of random API calls.
What your AI can actually do with this
Open Payments connects your AI client straight to official Centers for Medicare & Medicaid Services (CMS) records, letting you audit financial relationships across healthcare. You can use this server to dig into massive payment datasets to check compliance, do market research, or write a deep-dive article on industry funding. It gives you total transparency into how drug and device companies pay doctors and hospitals.
To start your investigation, you've got a couple of ways to locate specific parties involved in the payments. You can use search_physicians to find details on healthcare providers; just input their Name, NPI number, or medical specialty, and it locates them for you. If you need to track down institutions instead, run search_teaching_hospitals, which finds official teaching hospital records using either the facility's full name or its physical address.
Before you start running queries, you gotta know what data is even available. First, call list_datasets to pull up a complete rundown of all reporting cycles and payment category datasets currently housed in the CMS system. Once you see a dataset ID that looks promising, use get_dataset. This tool pulls the technical metadata—the column definitions, data types, and schema blueprint—for any specific dataset ID you need to query against.
When you're ready for the deep dive, you run query_dataset. This is where the heavy lifting happens. You can execute filtered searches across massive payment datasets using SQL-like syntax, letting you select precise records by applying filters and selections directly through $where and $select parameters. For example, if you want to know exactly how much Company X paid Doctor Y for Service Z in Q2 2023, query_dataset lets you build that query right into your workflow.
When you combine these tools—finding the providers with search_physicians, finding the hospitals with search_teaching_hospitals, seeing what data exists with list_datasets, getting the schema details with get_dataset, and finally executing the filtered searches with query_dataset—you've got a full auditing capability. You don’t just get raw numbers; you get auditable records showing the specific financial link, the reporting entity, and the covered recipient.
It’s all structured data waiting for your agent to pull it out.
You can combine searching by name or specialty with querying payment amounts. You'll find that knowing which dataset ID corresponds to a certain year or category is key; use list_datasets first, then get its schema using get_dataset, and finally run the specific search criteria you need via query_dataset. The entire process centers on building an airtight data trail from discovery to final record extraction.
It’s designed for compliance checks, market analysis comparing payment streams across regions, or journalism that requires absolute accuracy in financial reporting.
019e38cc-b261-73c2-baeb-12f936aff457 Here's how it actually works
The bottom line is that you talk to your AI client, and it handles all the complex API calls needed to pull structured financial data from Medicare sources.
First, connect your AI client and provide the Open Payments API Key (App Token).
Next, use list_datasets or search_physicians to narrow down the scope of your investigation.
Finally, pass specific criteria to query_dataset, which runs the search against the live CMS records, returning actionable data.
Who is this actually for?
Compliance Officers need this when they must verify a provider's full financial disclosures. Journalists use it to analyze industry spending trends and spot potential conflicts of interest. Healthcare Analysts rely on it to aggregate payment data and understand market influence across hospital systems.
Verifies that medical staff or organizations meet required financial disclosure standards by checking provider records using search_physicians.
Analyzes large payment datasets to identify spending patterns, track industry influence, and report on potential conflicts of interest.
Aggregates payment data from multiple records using query_dataset to build reports on market dynamics or provider relationships.
What Changes When You Connect
Compliance checks are faster. Instead of manually cross-referencing records, you use search_physicians to instantly verify a provider's full identity and specialty against official CMS data.
Deep trend analysis is possible. You run complex filters with query_dataset, allowing your agent to pull out only the payments over $10,000 from a specific year, bypassing years of manual spreadsheet work.
Schema guesswork stops here. If you don't know how a dataset works, use get_dataset first. It provides the exact column definitions so you write perfect queries every time.
Discover available data instantly. Use list_datasets to see which reporting cycles (e.g., General Payments 2023) are active before writing your query.
Hospital lookups are precise. Need to confirm a facility? Running search_teaching_hospitals by name or address gives you the official record ID immediately.
See it in action
Investigating Potential Conflicts of Interest
A journalist suspects a doctor is receiving payments from multiple competing device companies. They ask their agent to run search_physicians for the doctor's NPI, then use that ID in query_dataset. The agent pulls all payment records and groups them by industry type, solving the problem in minutes.
Compliance Audit of a New Department
A compliance officer needs to confirm every provider associated with a newly acquired hospital is properly disclosed. They use search_teaching_hospitals first to verify the institution's official record, then run targeted searches via query_dataset against that location’s payment history.
Analyzing Market Shifts in Cardiology
A healthcare analyst wants to know how much money was paid to cardiologists from pharmaceutical companies last year. They first call list_datasets to find the correct cycle, then use query_dataset, filtering by 'Cardiology' specialty and setting a minimum payment threshold.
Validating Data for Internal Reports
You need to know exactly what fields are available in last year's payments data. You run get_dataset on the relevant ID, which hands you the full schema definition so your agent writes a query that won't break.
The honest tradeoffs
Searching for payment amounts only
The user tries to query payments using natural language like 'Show me all big payments from Boston hospitals.' This fails because the tool requires structured identifiers and precise datasets.
Always start by calling list_datasets to find the right reporting cycle ID. Then, use that specific dataset ID in query_dataset, providing explicit filters for location or amount.
Using a name without verification
The user searches for 'Dr. Smith' using only text and assumes the result is accurate enough for compliance. This might pull multiple unrelated individuals.
Always verify the provider first. Use search_physicians to get an official NPI number, then use that verified ID in your subsequent query_dataset calls.
Relying on memory for schema
The user tries to select a column name like 'Doctor Specialty' but misremembers the exact database field name (e.g., it might be 'SpecialtyCode'). The query fails due to schema drift.
Before querying, call get_dataset on the relevant ID. This shows you the precise, technical column names you need for your $select filter.
When It Fits, When It Doesn't
Use this server if your core task requires deep, auditable financial data from official government records. Specifically, use it when investigating conflicts of interest or performing compliance checks on medical professionals and institutions.
Don't use this if you just need general industry news or simple contact information. For basic searching by name, a standard directory tool might be enough. If you only want to see what data can be queried but don't know the specific ID, run list_datasets first. Never assume that because you found an NPI via search_physicians, it automatically means there are payments associated with them; always validate that by running a targeted query_dataset.
This tool is for deep dives into structured records, not casual browsing.
Questions you might have
How do I start if I don't know which payment dataset to check using list_datasets? +
First, run list_datasets to see all available reporting cycles. Then, review the resulting IDs and use get_dataset on a few promising ones. This gives you the schema details you need before running a full query.
Can I find payment history for a hospital using search_teaching_hospitals? +
No, search_teaching_hospitals only finds the official record and metadata. To get payments, you must use that resulting name or ID in conjunction with query_dataset.
What is the difference between search_physicians and query_dataset? +
search_physicians is for finding a person's record (NPI, specialty). query_dataset is for running complex searches on large tables of transactions about people or hospitals.
Does the Open Payments MCP Server cover all types of payments? +
The server accesses CMS-published data. Always start by using list_datasets to verify that the specific payment type you need (e.g., Research vs. General) is available in a current dataset.
What authentication credentials does `query_dataset` require? +
It requires a valid Open Payments API Key (App Token), which you must provide upon server connection. This token authorizes your agent to access the CMS database records. Without it, all query attempts will fail due to insufficient permissions.
If I use advanced filtering in `query_dataset`, what format must the $where clause take? +
The $where filter expects a specific SQL-like syntax for effective searching. You need to structure your filters using standard comparison operators (e.g., amount > 5000) and correctly identify the dataset's column names, which you can check first with get_dataset.
Are there rate limits when running multiple calls with `search_physicians` or `list_datasets`? +
Yes, external API services enforce rate limits to maintain system stability. When your agent exceeds the allotted requests per minute, you must implement a pause/retry mechanism in your workflow logic. We recommend batching similar queries.
Before running a query, how can I verify column names using `get_dataset`? +
get_dataset retrieves the full schema and metadata for any specific dataset ID. This output gives you all available field names and their data types, guaranteeing that your subsequent queries will use valid identifiers.
How can I find payments for a specific doctor by their NPI? +
Use the search_physicians tool and provide the npi parameter. Your agent will return matching physician records which you can then use to query specific payment datasets.
Can I filter results to only show payments above a certain dollar amount? +
Yes, use the query_dataset tool with the where parameter. For example, you can set where to total_amount_of_payment_usdollars > 1000 to filter for high-value transactions.
How do I see what columns are available in a specific dataset? +
Use the get_dataset tool with the specific dataset_id. It will return detailed metadata, including column definitions, data types, and update frequency for that specific reporting cycle.
We've already built the connector for Open Payments. Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 5 tools are live and waiting.
You're up and running in seconds.
Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.
Built, hosted, and secured by Vinkius. You just connect and go.