Swiss Army Knife MCP Server

Anton Tishchenko
Anton Tishchenko
Cover Image for Swiss Army Knife MCP Server

Swiss-knife MCP server

I have been working with MCP servers for a while. Most of the time, I use MCP servers created by someone else. But I have created some of them by myself, e.g., Sitecore MCP server.

Recently, I saw an announcement on GitHub that they introduced the GitHub MCP Registry. And I decided to make an experiment. What if I allow AI agents to look for MCP servers in the registry, install and use them?

xzibit

Implementation

Implementation was straightforward. There were only three interesting places that I wanted to stop: indexing, the catalogue to use, and running tools as a proxy.

Index

The current MCP Registry API is poor. You can authenticate, check health, publish, and get MCP servers. That is it. Nothing else for now. That is why I implemented the search by myself. I get all the MCP servers from the registry and index them using flexsearch. It is not the best and is not a future-proof full-text search library. But it is portable and quite simple for this experiment.

Catalogue

I think that smither.ai, mcpmarket.com, mcpserver.org, and others contain many more MCP servers to browse. But what will be the future for them? I don’t think that one of them will become the standard for the industry. The GitHub MCP registry has this opportunity, as it is backed by a large company. That is why I selected not the biggest one, but the one that promises more.

Tools configuration

I decided to stick with the existing MCP server configurations. You have a command to run, arguments, and environment variables. Or URL if it is a streamable HTTP transport. It is possible to start each server separately and run it by myself. But that was already done in @langchain/mcp-adapters. All that I need is to get the tools configuration and re-register them.

Usage

You can configure this MCP server as stdio server to any client that you want.

{
    "mcpServers": {
        "Universal MCP Server": {
            "command": "npx",
            "args": ["-y", "@antonytm/mcp-all@latest"],
            "transport": "stdio",
            "environmentVariables": [
                {
                    "name": "TRANSPORT",
                    "value": "stdio"
                }
            ]
        }
    }
}

It is also possible to run it using streamable HTTP transport and inside a Docker container if needed.

Cursor

Now, we can ask our AI agent about MCP.

Show MCP configuration

Cursor

Let’s look for the MCP server to access files.

Find MCP server that allows access to filesystem

Cursor

Cursor

Let’s configure the MCP server!

Configure the @agent-infra/mcp-server-filesystem MCP server to access current dir

Cursor

Here, I need to refresh it manually. It could also be automated as an MCP tool. But with the current MCP protocol, there is no way to do it in the same way for all possible clients.

And now, our MCP server has 15 tools!

Cursor

And now I can access files using new tools!

Cursor

You may say that Cursor can access files without it. And you will be right. The filesystem The MCP server was selected only as an example that has a clear purpose. It can be anything: browser, database, API, 3rd party services, … Anything that has an MCP server to access it.

Conclusion

Don’t take this MCP server too seriously. It is better to control the MCP servers yourself. This attempt is a try to imagine the future of AI Agents and the MCP servers. At some point, AI agents will decide by themselves if they need some tools, configure them, and use them. And looking at how easy it could be done, it will happen in the near future. And even more: they will write MCP servers for themself. The only concern is the security…