Skip to main content

MCP Server for DB Schenker Shipments

Project description

DB Schenker Shipment Information MCP Server

My journey and approach

Understanding MCP:

I had never heard of MCP prior to this, so I started by visiting their documentation. A skill I've developed during my studies is how to use LLMs to improve my learning (as opposed to impede - the trap which many students fall in), so I also asked lots of questions asking for pedagogical explanations. Whenever something didn't quite feel intuitive or right, it was of course important to fact check the robot. Since I've studied network protocols, understanding MCP was rather intuitive.

Learning Web Scraping:

Automating website interaction is something I've had in mind for some projects that only ever stayed in my head, but with this I had no choice but to learn it. At first, I thought I would be parsing HTML using a simple request library but, of course, someone has always had the same problem as you have and there exists a good library for most things. My approach to selecting a library to use was to describe the use case to an LLM and then ask it for suggestions with provided rationale. I got recommended Playwright, a library for automating web tests, and after looking into it for some time I decided to stick with it. In essence, it launches a headless browser and provides an intuitive way for you as a programmer to navigate it.

Usability vs Reliability:

Through building this MCP server, I continuously tweaked the timeout values up and down with two opposite arguments in my head:

  • The timeout should be short so that a faulty input is swiftly detected
  • The timeout should be long so that an end user with poor internet connection does not get timed out for a valid request.

In the end, I decided to go with short timeouts and prioritize usability. Since I have no empirical evidence to base it on, the decision was based on my own experience. I would rather have it work faster the 99/100 times I am using it (with fast network connection) and not at all 1/100 times (with slow network), rather than it working 100/100 times but responding slowly to every input error I make.

How to test it yourself (with Claude Desktop)

1. Install uv for your OS
2. Run commands to clone repository and install dependencies

In a new terminal, paste the following:

git clone https://github.com/VVikingsson/mcp-server.git
cd mcp-server/dbschenker_server
uv sync

3. Set up Claude Desktop
  • Download Claude Desktop for your OS (if you don't already have it)
  • Follow the installation instructions and open the app.
  • Log in or create an account and proceed to the chat view.
  • Now in the app, click the hamburger menu in the top left.
  • Navigate to File -> Settings -> Developer.
  • Click 'Edit Config'.
    If you see a file not found error...
    • Open your file explorer and head to the parent location of the directory shown in the error (remove "/Claude").
    • Create a folder called 'Claude' and continue from the next step.
  • Download the config file and place it in the Claude folder.
4. Verify setup
  • Close Claude Desktop if it was running (you might need to end the in a task manager)
  • Open Claude Desktop
  • Click the + sign to the left of the text field
  • Hover over connectors
  • You should now see "DBSchenker" listed as a connector.

You are now ready to test the server! Try asking Claude about the following reference IDs:

  • 1806203236 - Valid, one package
  • 1806290829 - Valid, two packages
  • 180620323 - Invalid, should not find.
  • 123 - Invalid format, should tell you to provide a general shipment ID, not a specific type.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbschenker_mcp_server-0.1.1.tar.gz (36.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbschenker_mcp_server-0.1.1-py3-none-any.whl (38.0 kB view details)

Uploaded Python 3

File details

Details for the file dbschenker_mcp_server-0.1.1.tar.gz.

File metadata

  • Download URL: dbschenker_mcp_server-0.1.1.tar.gz
  • Upload date:
  • Size: 36.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dbschenker_mcp_server-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e7633b07d51451cec5cf14ef17c090976fefd2eeb29b2c6f7627bcec459fc937
MD5 56dd3470a772639d8b3a943666ea3129
BLAKE2b-256 16d9a9de23ceb517d6a0fa31eb2c3eebe6cf7d1e687a964077fec79f8d75fb64

See more details on using hashes here.

File details

Details for the file dbschenker_mcp_server-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: dbschenker_mcp_server-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 38.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dbschenker_mcp_server-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8aa9a64f91b8084a6f165f131ce237ee7adabb7740cce86d72687141a4eeec8a
MD5 da881c58ce0e369fec3fd31c9d6bca40
BLAKE2b-256 350d69ef8ad370b5f0c2c1071c9f9ce94c1910c99651dd4813d255c811f76776

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page