Overview
What is PayPal Java MCP Server?
PayPal Java MCP Server is a Java implementation of a PayPal Merchant Capability Platform (MCP) server that provides tools for analyzing and improving payment processing. It offers JSON-RPC over HTTP and stdio interfaces, designed for developers integrating with PayPal’s capabilities.
How to use PayPal Java MCP Server?
Run in web mode (java -jar target/paypal-java-mcp-server-0.0.1-SNAPSHOT.jar) to expose a REST API on port 8080, or in stdio mode (java -Dspring.profiles.active=stdio ...) for JSON-RPC over standard input/output. Deploy with Smithery using the provided prepare-smithery.sh script or Docker.
Key features of PayPal Java MCP Server
- JSON-RPC over HTTP API for web clients
- JSON-RPC over stdio interface for Smithery integration
- Authorization rate improvement analysis tool
- Basic calculator tool for testing
- Docker support for both REST API and JSON-RPC servers
- Non‑interactive mode using named pipes
Use cases of PayPal Java MCP Server
- Analyze transaction data and receive recommendations to improve authorization rates
- Perform basic math operations as a testing tool
- Deploy as a Smithery‑compatible server for AI‑assisted payment optimization
- Run in non‑interactive environments (e.g., Docker, headless servers)
FAQ from PayPal Java MCP Server
What are the prerequisites for running the server?
Java 17 or higher and Maven 3.6 or higher are required.
How do I run the server in web mode?
Use java -jar target/paypal-java-mcp-server-0.0.1-SNAPSHOT.jar; the REST API is available at http://localhost:8080/api/mcp.
How do I run the server in JSON‑RPC over stdio mode?
Use the command with -Dspring.profiles.active=stdio -Dspring.main.web-application-type=NONE -Djsonrpc.stdio.interactive=true -jar target/paypal-java-mcp-server-0.0.1-SNAPSHOT-stdio.jar. The server reads requests from stdin and writes responses to stdout.
How can I deploy the server with Smithery?
Run ./prepare-smithery.sh to create a smithery-deploy directory with the JAR, configuration, and scripts. The Smithery config must set "interactive": true and include the -Djsonrpc.stdio.interactive=true flag.
What should I do if my environment does not support interactive stdio?
Use the start-non-interactive.sh script, which creates named pipes and pre‑initializes the server. Alternatively, set "interactive": false in the Smithery configuration and start the server with -Djsonrpc.stdio.interactive=false.