@imazhar101/paypal-mcp
Provides tools for interacting with the PayPal REST API, including reading transactions, balances, invoices, orders, captures, disputes, billing plans, and subscriptions, as well as optional write tools for creating/sending invoices and refunds.
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., "@@imazhar101/paypal-mcplist my recent transactions"
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.
@imazhar101/paypal-mcp
A lite Model Context Protocol server for PayPal.
Unlike PayPal's official @paypal/mcp (which pulls in the entire LangChain / Vercel-AI agent-toolkit and expects a pre-minted, short-lived access token), this server is intentionally small:
No heavy dependencies — just
@modelcontextprotocol/sdk+zod. Calls the PayPal REST API directly withfetch.Owns its token lifecycle — you give it a durable client id + secret; it mints, caches, and refreshes the
client_credentialsaccess token itself. Proactive refresh (expiry skew) + reactive refresh (re-mint + retry once on a 401). A long-lived host (e.g. an MCP gateway) can spawn one child per merchant with only the static client-id/secret in its env and never babysit token expiry.Read-only by default — this server handles money. Write/refund/payout tools are not registered unless you opt in with
PAYPAL_READONLY=0.
Install
npm install -g @imazhar101/paypal-mcpRelated MCP server: PayPal MCP Server
Configure
Env var | Required | Default | Notes |
| yes | — | PayPal REST app client id |
| yes | — | PayPal REST app secret |
| no |
|
|
| no |
|
|
Create a REST app and obtain credentials at the PayPal Developer Dashboard. The app must have the relevant features enabled (Invoicing, Transaction Search, etc.) or those tools will return 403 NOT_AUTHORIZED.
Run (stdio)
PAYPAL_CLIENT_ID=... PAYPAL_CLIENT_SECRET=... PAYPAL_ENVIRONMENT=SANDBOX paypal-mcpClaude Code / MCP client config
{
"mcpServers": {
"paypal": {
"command": "npx",
"args": ["-y", "@imazhar101/paypal-mcp"],
"env": {
"PAYPAL_CLIENT_ID": "...",
"PAYPAL_CLIENT_SECRET": "...",
"PAYPAL_ENVIRONMENT": "SANDBOX"
}
}
}
}Tools
Read-only (always registered):
Tool | PayPal API |
| mints a token; reports environment |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Write tools (create/send invoice, refund, …) are a deliberate follow-up gated behind PAYPAL_READONLY=0.
License
MIT
Available Tools
11 toolspaypal_get_balancesA
Get current (or as-of) account balances by currency.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of_time | No | Optional ISO-8601 point in time | |
| currency_code | No | Optional ISO-4217 code, e.g. USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like read-only nature, authentication needs, or latency. The minimal description does not mention these, nor any limitations or side effects.
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?
A single sentence that is front-loaded and contains no extraneous words. Every element serves a purpose, making it efficient and easy to parse.
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?
For a simple read tool with two optional parameters and no output schema, the description provides minimal but adequate information. It lacks return value details or any caveats, but is sufficient for basic usage.
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 coverage is 100%, but the description adds useful context: 'current' vs 'as-of' relates to as_of_time, and 'by currency' clarifies the currency_code filter. This adds value beyond the schema's basic type hints.
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 retrieves account balances by currency, with an option for current or as-of time. It is the only balance-related tool among siblings, making it distinct and unambiguous.
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?
No guidance is provided on when to use this tool versus alternative PayPal tools (e.g., for transactions or invoices). The agent is left to infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_get_captureB
Get a captured payment by id.
| Name | Required | Description | Default |
|---|---|---|---|
| capture_id | Yes | The capture id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It only states the action, omitting details like authorization requirements, rate limits, or side effects.
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, clear sentence with no superfluous words. It is perfectly concise.
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 absence of an output schema, the description could mention what data is returned (e.g., capture details). It is minimally complete for a simple read operation but lacks return information.
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 coverage is 100% for the single parameter, so the description adds no extra meaning. Baseline of 3 is appropriate.
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 verb 'Get' and the resource 'a captured payment by id', distinguishing it from sibling tools that retrieve other entities like orders or subscriptions.
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?
No guidance is provided on when to use this tool versus alternatives such as paypal_get_order. The description lacks context for optimal usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_get_disputeB
Get a dispute by id.
| Name | Required | Description | Default |
|---|---|---|---|
| dispute_id | Yes | The dispute id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the basic operation without disclosing any behavioral traits like authentication, rate limits, error handling, or what happens if the dispute is not found.
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 with no wasted words. It is front-loaded and immediately communicates the core purpose.
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 simplicity of the tool (one parameter, no output schema), the description is minimally adequate. However, it lacks information on return values, error cases, or performance considerations, which could be helpful given the number of sibling tools.
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% (the only parameter 'dispute_id' has a description). The tool description does not add any additional meaning beyond what the schema already provides, so the base score of 3 applies.
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 explicitly states the action 'get', the resource 'dispute', and the identifier 'by id'. It clearly distinguishes from sibling tools like paypal_list_disputes and other get tools for different resources.
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?
No guidance is provided on when to use this tool versus alternatives such as paypal_list_disputes. There is no mention of prerequisites, use cases, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_get_invoiceA
Get a single invoice by id.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | The invoice id, e.g. INV2-XXXX-XXXX-XXXX-XXXX |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It only indicates a read operation but does not disclose error handling, authentication requirements, or rate limits. For a simple retrieval tool, this is minimally adequate but lacking.
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 sentence without any fluff, clearly conveying the core functionality. It is concise and front-loaded.
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 simplicity of the tool (one parameter, no output schema), the description is somewhat complete but lacks details about return values or possible errors. The absence of an output schema leaves the agent without knowledge of the response structure.
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 coverage is 100%, with the single parameter well-described in the schema. The description does not add meaning beyond what the schema provides, so baseline of 3 is appropriate.
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 action (get), resource (invoice), and the method of identification (by id). It distinguishes itself from siblings like paypal_list_invoices which retrieves multiple invoices.
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?
No guidance is provided on when to use this tool vs. alternatives like paypal_list_invoices or paypal_get_order. The description lacks context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_get_orderB
Get a checkout order by id.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | The order id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description is minimal and doesn't disclose whether the operation is read-only, has side effects, or any other behavioral context beyond retrieving an order.
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?
Extremely concise single sentence with no wasted words, effectively communicating the essential action.
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?
For a simple get operation with one parameter and no output schema, the description is adequately complete, though it could mention the return value type.
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 coverage is 100% with a clear parameter description; the tool description adds 'by id' but doesn't enhance meaning beyond the schema, so baseline score of 3 applies.
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?
Description clearly states the tool retrieves a checkout order by ID, using specific verb 'Get' and resource 'checkout order', distinguishing it from siblings like get_capture or get_dispute.
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?
No guidance on when to use this tool versus alternatives, no mention of prerequisites or conditions; the description merely states the function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_get_subscriptionB
Get a subscription by id.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | The subscription id, e.g. I-XXXXXXXXXXXX |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. The description only states the action but does not disclose any behavioral traits such as return format, authentication needs, or potential side effects.
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 sentence, highly concise and front-loaded. While it is extremely brief, it effectively communicates the core purpose with no wasted words.
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?
The tool has no output schema and no annotations. With only one parameter, the description is minimal and does not explain what the tool returns or any other contextual information. For a simple get operation, it partially meets needs but lacks completeness.
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% for the single parameter, which already documents subscription_id as 'The subscription id, e.g. I-XXXXXXXXXXXX'. The description adds no extra meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
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 'Get a subscription by id' clearly states the verb (Get) and resource (subscription) with the method (by id). It distinguishes from siblings like paypal_get_capture or paypal_get_order by specifying the subscription resource.
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?
No guidance is provided on when to use this tool versus alternatives. No exclusions, prerequisites, or context for usage are mentioned. The description is purely declarative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_list_disputesC
List customer disputes.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Default 50 | |
| dispute_state | No | Optional filter, e.g. OPEN_INQUIRIES, REQUIRED_ACTION |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not disclose pagination behavior (though page_size parameter exists), default settings, rate limits, or output format. Only the basic listing action is mentioned.
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 concise sentence with no wasted words. However, it could be structured to include more detail without losing conciseness.
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 2 parameters, no output schema, and sibling tools with similar names, the description is incomplete. It lacks information about pagination, filtering, and return values, which are critical for a listing tool.
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 baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions. It does not explain the purpose of parameters in the context of the tool.
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 lists customer disputes, which is a specific verb+resource. However, it does not explicitly differentiate it from the sibling tool 'paypal_get_dispute' which retrieves a single dispute, but the name itself implies listing.
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?
No guidance is provided on when to use this tool versus alternatives like paypal_get_dispute or other listing tools. The agent is left to infer based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_list_invoicesB
List invoices (paginated).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Default 1 | |
| page_size | No | Default 20 | |
| total_required | No | Include total count; default true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions pagination but fails to disclose other behavioral traits like rate limits, auth requirements, or side effects.
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?
Very concise at three words; no wasted text, though could be expanded slightly for clarity without losing conciseness.
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?
For a simple paginated list tool, description covers purpose but lacks output format or ordering info; no output schema to compensate.
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 coverage is 100% with descriptions for all three parameters, so the description adds no additional parameter meaning beyond what the schema already provides. Baseline 3.
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 action (List) and resource (invoices) and distinguishes from siblings like paypal_get_invoice (single invoice) and other list tools.
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?
No guidance on when to use this tool vs alternatives (e.g., paypal_get_invoice for a single invoice) or any context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_list_plansB
List billing (subscription) plans.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Default 1 | |
| page_size | No | Default 20 | |
| product_id | No | Optional product id filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'List billing (subscription) plans' without disclosing behavioral traits such as pagination, filtering behavior, or data returned. For a list tool with no annotations, this is insufficient.
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 extremely concise (4 words) and front-loaded, containing no wasted words. However, it could be slightly more informative without becoming verbose.
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 simplicity (3 optional params, no output schema, no annotations), the description is too minimal. It fails to explain return format or any constraints beyond the schema, leaving the agent underinformed.
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 coverage is 100% with descriptions for all three parameters. The description adds no additional meaning beyond what the schema already provides, meeting the baseline of 3.
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 'List billing (subscription) plans' clearly specifies the action (list) and resource (plans), distinguishing it from siblings like 'paypal_get_subscription' which gets a single plan.
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 implies usage for listing plans but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_list_transactionsB
Search transactions in a date range (Transaction Search API). start_date and end_date are required ISO-8601 timestamps and must be <= 31 days apart.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Default 1 | |
| end_date | Yes | ISO-8601 end, e.g. 2026-06-27T23:59:59-0700 | |
| page_size | No | Default 100 | |
| start_date | Yes | ISO-8601 start, e.g. 2026-06-01T00:00:00-0700 | |
| transaction_status | No | Optional filter, e.g. S (success), P (pending), V (reversed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully cover behavioral traits. It only gives parameter constraints but omits crucial details like pagination behavior, error handling, rate limits, or whether the operation is read-only.
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 sentence with no unnecessary words. It is front-loaded with the core purpose and immediately gives key usage constraints.
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?
For a tool with 5 parameters and no output schema, the description is too brief. It fails to explain pagination, filtering, or expected return structure. The date range constraint is helpful, but overall completeness is low.
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 coverage is 100%, so the description's value-add is limited. It adds clarity about the ISO-8601 format and the 31-day separation constraint for required fields, but does not elaborate on optional parameters (page, page_size, transaction_status).
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 action 'Search transactions' and the resource 'in a date range', matching the tool name 'paypal_list_transactions'. It is specific and distinct from sibling tools which deal with other resources or single-item lookups.
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 specifies required parameters (start_date, end_date) and a key constraint (date range <= 31 days). However, it does not provide guidance on when to use this tool vs. alternatives like paypal_list_invoices or paypal_list_disputes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paypal_verify_connectionA
Verify the configured PayPal credentials by minting an access token. Returns the environment (SANDBOX/PRODUCTION). Use this to confirm the connection works.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the tool's behavior (minting an access token, returning environment) without annotations. It adds value by specifying the return value and the action, which is adequate for a zero-parameter 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?
Two concise sentences with no wasted words. The first sentence states the action and output, the second provides usage guidance. Excellent structure.
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?
For a zero-parameter, no-output-schema verification tool, the description is complete. It explains what it does, what it returns, and when to use it. No gaps.
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?
No parameters exist, so schema coverage is 100%. The description does not need to add parameter meaning; baseline 4 applies.
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: verifying PayPal credentials by minting an access token and returning the environment. It distinguishes itself from sibling tools (e.g., paypal_get_balances) that retrieve data rather than verify connections.
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 explicitly says 'Use this to confirm the connection works,' providing clear usage context. While it doesn't mention when not to use it, the sibling tools list implies this is for initial verification, which is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v0.1.0- First observed
paypal_get_balances - First observed
paypal_get_capture - First observed
paypal_get_dispute - First observed
paypal_get_invoice - First observed
paypal_get_order - First observed
paypal_get_subscription - First observed
paypal_list_disputes - First observed
paypal_list_invoices - First observed
paypal_list_plans - First observed
paypal_list_transactions - First observed
paypal_verify_connection
TDQS
Each tool targets a distinct resource or action (e.g., get_ vs list_), and all resource types are clearly separated (balances, captures, disputes, invoices, orders, subscriptions, plans, transactions). No two tools have overlapping purposes.
All tools follow a consistent 'paypal_verb_noun' pattern in snake_case, with clear verbs like get, list, and verify. No mixing of conventions or vague verbs.
With 11 tools, the server covers a reasonable breadth of PayPal operations without being excessive. Each tool addresses a clear use case, and the count feels appropriate for a focused integration.
The server is entirely read-only except for credentials verification. Missing create, update, or delete operations for any resource (e.g., orders, invoices, disputes) severely limits its utility for typical payment workflows.
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
PayPal MCP Pack — read-only access to PayPal transactions, orders, invoices, and disputes.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
MCP server for Modern Treasury — payment orders, transactions, counterparties and ledgers.
Billing proxy for MCP servers. Adds Stripe and x402 crypto payments without writing billing code.
Related MCP Servers
- AlicenseCqualityNot gradedmaintenanceThis is an MCP server to manage PayPal12-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides comprehensive integration with PayPal's APIs, enabling seamless interaction with payment processing, invoicing, subscription management, and business operations through a standardized interface.7Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA server that provides integration with PayPal's APIs, enabling seamless interaction with payment processing, invoicing, subscription management, and business operations through a standardized interface.MIT
- AlicenseNot gradedqualityDmaintenanceThis read-only MCP Server allows you to connect to PayPal data from Claude Desktop through CData JDBC Drivers. Free (beta) read/write servers available at https://www.cdata.com/solutions/mcpMIT
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/imazhar101/paypal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server