Capabilities · Integration

The integration work most shops decline

HDS takes on the vendor APIs other shops turn down. Our systems integration services cover typed clients, middleware, and Model Context Protocol servers over billing, telecom, and PSA platforms. The work includes the awkward details: pagination, rate limits, and fields whose meaning is hidden behind an integer. The result is a usable connection to the systems your business already depends on.

01 · SCOPE

The connection, from vendor response to useful record

Typed API clients. The client translates a vendor's interface into operations the rest of your software can use. It handles how records are requested, which fields are returned, how the response is interpreted, and how failures are reported. Putting that work in one place gives automation and interactive tools the same understanding of the source.

Middleware between systems. This layer maps vendor payloads into a stable internal shape. A billing account, a telecom service, and a PSA record do not automatically use the same identity or vocabulary. Middleware makes that translation explicit, so each new workflow does not have to rediscover what the fields mean.

Access for AI tooling. An MCP server can expose selected operations through a common protocol. It belongs over a reliable client, with a deliberate decision about which records and actions the assistant should be allowed to request. Adding an assistant does not remove the need to understand the platform underneath it.

The scope starts with the business task. Looking up an account, reconciling records, and changing a live service have different requirements. Name the desired action before choosing whether the connection should read, write, or do both.

02 · REALITY

A successful response can still be a failed request

In the published vendor middleware engagement, the difficult behavior was specific: inconsistent pagination, fields encoded as opaque integer picklists, and success codes returned on authentication failures. These were characteristics of the platforms in that work, not a claim about every vendor API.

Pagination determines whether you retrieved the complete record set. A client needs to understand how that particular endpoint signals another page and when collection is finished. An apparently reasonable list is not enough evidence that nothing was skipped.

An integer picklist requires a translation from the stored value to its business meaning. That mapping belongs in maintained code or data, where every consumer can use it. Scattering those meanings across scripts leaves each workflow with its own version of the vendor's vocabulary.

Authentication failures inside an otherwise successful HTTP response require checking the response body. A status code alone cannot establish success on those platforms. Rate limits add another constraint: requests need to respect the vendor's allowed pace and make a delayed or failed operation visible. These details determine whether the connection is dependable enough to use for an operational decision.

03 · AI ACCESS

One vendor connection, available to compatible AI clients

MCP gives an AI application a common way to discover and use a server's tools and data. That can let compatible applications use the same server instead of requiring a separate vendor connector for each assistant. The supported protocol version, transport, and capabilities still need to match. The official MCP architecture guide describes those roles.

For this practice, the useful part is reuse of the connection already built. Vendor authentication, field mapping, and pagination belong below the assistant interface. A tool for looking up an account should use that maintained client rather than introducing another interpretation of the vendor API.

The published middleware engagement used the same clients for automation and assistant workflows. The explainer below covers the protocol itself; this service covers the engineering required to make the underlying systems usable through it.

04 · ENGAGEMENT

Managed services and telecom operations

Core business data was locked behind billing, telecom, and PSA platforms whose APIs paginate inconsistently, encode fields as opaque integer picklists, and return success codes on authentication failures.

  • Typed async clients handling pagination, rate limits, and picklist resolution
  • Model Context Protocol servers exposing those systems to AI tooling directly
  • Middleware layer normalizing vendor payloads into a stable internal shape

Operations data is queryable in one interface instead of three portals, and the same clients back both automation and assistant workflows.

The vendor-facing work became a shared foundation for more than one kind of interface. See the middleware layer we built over three vendor platforms.

When the next need is a shared model and dashboards, the adjoining practice handles reporting built on top of connected systems. Making a source accessible and deciding how the business measures its performance are related pieces of work, with different deliverables.

05 · TOOLING

Tools chosen around the systems being connected

  • Python
  • TypeScript
  • FastAPI
  • MCP
  • REST

This is the practice's published stack. The appropriate implementation depends on the vendor interface, the environment that will run it, and who will maintain it. The first step is to describe the systems you are trying to connect and the task that currently falls between them.

Before commissioning an integration

Should we try an off-the-shelf connector first?

Yes, if it supports the actual records, direction of updates, and failure handling your workflow needs. Check those details before commissioning custom work. A connector that transfers contacts may still leave out the project, invoice, or custom field that prompted the request. The useful test is your real workflow, including exceptions.

Can you connect a system that has no usable API?

Sometimes an approved export, import, or database interface provides a workable path. Access, licensing, and the required update frequency determine whether that path is suitable. We need to inspect the supported options before promising an integration. A missing API is a scoping constraint, not a reason to assume any workaround will be reliable.

What happens when the vendor changes its API?

The integration needs a maintenance owner and a way to detect failures. A stable internal interface can contain the change, but somebody still has to update the vendor client and verify its behavior. Scope should name that responsibility, the available diagnostics, and which ongoing support is included.

Does an integration have to write back into our systems?

No. Reading records can be enough for a reporting or lookup workflow. Write access should follow a specific business need, with clear rules about which system owns each value and what happens when an update fails. Start by naming the decisions and actions the connection must support.

Which task should your systems be able to handle together?

Start with a free scoping conversation with Mike Hyams, the person who builds and supports the work.