learning-mcp-server
A minimal MCP server with three toy tools (add, echo, current_time) for learning deployment on SAP BTP Cloud Foundry.
README
learning-mcp-server
A minimal MCP server (three toy tools: add, echo, current_time) meant purely
for learning how MCP servers deploy and run on SAP BTP's Cloud Foundry trial
environment. No auth, no SAP backend calls — just get something running end to end.
Step 1 — Get a trial account
- Go to https://www.sap.com/products/technology-platform/trial.html and sign up (SAP account required; free, no time-limited data beyond the 90-day trial window).
- After signup you land in the SAP BTP cockpit with a subaccount and a Cloud Foundry space already created for you.
Keep in mind while you're learning: the trial account is for personal, non-production exploration only, resets after 90 days (or 30 days of inactivity), and has no SLA. That's all fine for this purpose.
Step 2 — Enable Cloud Foundry environment
- In the cockpit, open your subaccount → Cloud Foundry Environment.
- If it's not already enabled, click Enable Cloud Foundry, choose the free/trial plan, keep defaults, and create it.
- Note the API Endpoint shown here (something like
https://api.cf.us10-001.hana.ondemand.com) — you'll need it to log in. - A default space (usually called
dev) is created automatically.
Step 3 — Install the Cloud Foundry CLI
Install cf from https://github.com/cloudfoundry/cli#installers-and-compressed-binaries
(or via your package manager, e.g. brew install cloudfoundry/tap/cf-cli on macOS).
Verify:
cf --version
Step 4 — Log in
Trial accounts authenticate via SSO passcode rather than username/password:
cf login -a <API-ENDPOINT-FROM-STEP-2> --sso
This prints a URL — open it in your browser, copy the one-time passcode shown there,
and paste it back into the terminal prompt. Then select your org and the dev space
when prompted (or run cf target -o <your-org> -s dev afterward).
Step 5 — Deploy the server
From this project folder:
cf push
cf push reads manifest.yml, uploads the code, builds it with the Python buildpack,
and starts it. When it finishes, it prints a route — something like:
routes: learning-mcp-server-<random>.cfapps.us10-001.hana.ondemand.com
That's your server's public HTTPS URL. Your MCP endpoint is at <that-url>/mcp.
Important for learning purposes only: this deployment has no authentication — anyone with the URL could call it. That's acceptable for a throwaway trial-account experiment, but never deploy an unauthenticated server like this with real data or real SAP system access behind it.
Step 6 — Test it
The easiest way to poke at it directly is the official MCP Inspector:
npx @modelcontextprotocol/inspector
This opens a local web UI. Choose Streamable HTTP as the transport, paste in
https://<your-route>/mcp, connect, and you should see the three tools
(add, echo, current_time) listed — click one to try it.
Step 7 — Connect it to Claude Desktop (optional)
Claude Desktop's config expects a local command, but remote Streamable HTTP servers
can be bridged in via mcp-remote:
{
"mcpServers": {
"learning-server": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://<your-route>/mcp"]
}
}
}
Restart Claude Desktop and ask it to add two numbers or echo some text.
Useful commands while learning
cf logs learning-mcp-server --recent # see recent logs (crash cause etc.)
cf logs learning-mcp-server # tail live logs
cf apps # list deployed apps and their routes/state
cf restart learning-mcp-server # restart after config changes
cf delete learning-mcp-server # tear it down, free up memory quota
Where to go from here
Once this deploys and responds correctly:
- Add a tool that calls a real SAP API (e.g. a public S/4HANA sandbox OData service, no auth needed to start).
- Then introduce a BTP Destination instead of a hardcoded URL.
- Then add authentication (SAP Cloud Identity Services / XSUAA) in front of the server, following the security pattern from the earlier architecture discussion.
Each of those is a small, isolated next step — happy to scaffold any of them when you're ready.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.