My friend and I have been working on this project for the past few days.
While building and deploying MCP servers, we found it hard to understand how they were actually being used by a model in practice. Even after deployment, it was often unclear whether the model was calling our MCP tools at all, or how it was interacting with them.
When things failed, we could not easily tell whether the issue came from our function definitions, our documentation, or how the model was interpreting and calling the tools.
So we built Heimdall to trace how models call and use an MCP server. It shows which functions are invoked, with what arguments, and in what order, so we can better understand model behavior and refine our MCP setup.
This is a very early-stage project, and there is still a lot to do. Feedback is very welcome.
Thanks for reading!