0:00
/
0:00
Transcript

Golf is redefining the way you write MCPs

There's a new MCP framework in town

Most people I know building MCP servers are using boilerplate templates, whether it be FastMCP or example servers in the official SDK. I tried a couple myself, but figuring out how to host them was a bit of a hassle. With a bit of digging, Golf caught my attention. They claim to offer a framework for production ready MCP servers with instant deploy. I gave it a go, and here are my thoughts about it.

What is Golf and what do they offer

Golf is a company building an open source framework for production ready MCP servers. What makes it production ready is that they have a ton of enterprise services baked into their framework, such as health checks, telemetry (logging & monitoring), and instant deploy to cloud services. The company is backed by YCombinator and ElevenLabs. I’ll run through some basics, but I highly recommend you checking out their website and GitHub repo to learn more.

On their website, they say their framework offers:

  1. Rate limiting: Protect your server from attacks, and control usage

  2. Tool filtering: Dynamically render tools based on user

  3. Authentication: Fully managed auth handling, with API keys and OAuth

  4. Traceability: This is the telemetry stuf. Logging for visibility

  5. Hosting: instant deploy on cloud services like AWS and Vercel, or self-hosted

Golf Banner

How do developers use Golf?

Setting up Golf is pretty straight forward. You install their Python package and initialize a project. The project structure is straight forward. There’s a golf.json file to configure things like port, transport (STDIO, SSE, Streamable), and telemetry. There are also directories for building tools, resources , and prompts.

Defining tools is a bit different

Creating a tool is a bit different from how tools are usually defined. Creating a new tool looks like this for example:

# tools/hello.py
"""Hello World tool {{project_name}}."""

from typing import Annotated
from pydantic import BaseModel, Field

class Output(BaseModel):
    """Response from the hello tool."""
    message: str

async def hello(
    name: Annotated[str, Field(description="The name of the person to greet")] = "World",
    greeting: Annotated[str, Field(description="The greeting phrase to use")] = "Hello"
) -> Output:
    """Say hello to the given name.
    
    This is a simple example tool that demonstrates the basic structure
    of a tool implementation in Golf.
    """
    print(f"{greeting} {name}...")
    return Output(message=f"{greeting}, {name}!")

# Designate the entry point function
export = hello

Golf automatically discovers, parses, and compiles these tools for you.

My opinions on Golf / experience using it

I have mixed opinions about their approach. However, the project and company are still pretty early, but what they have so far works great.

Setting up Golf and building an MCP server with it just works. I was able to figure out how to build a couple of tools with their framework and get my server built for development. What I like the most about Golf is that it abstracts a lot of the set up away. I don’t have to configure my transport and it allows me to focus on just tool building. I haven’t tried out their telemetry feature, but it also seems very simple to set up. I wanted to try out the instant deploy to cloud and OAuth management, but it seems like that’s on their roadmap.

I don’t think Golf is production ready yet, and I disagree with their approach. Instead of redefining the way people write MCPs, I think they should build on top of existing pouplar frameworks like FastMCP, perhaps provide separate packages for their services. For those who already have production MCP servers, I think it’s going to be hard to convince them to migrate to a new framework. I also don’t think it’s production ready YET, but their product is still new and it takes time to mature.

With that being said, I’m impressed with what they’ve built, and their product provides clear value. The founders have a clear roadmap, and I do think many of my opinions above won’t hold down the line. I’m excited for Golf to mature and will be up with thier work.

Discussion about this video

User's avatar