Anyone using MCP for CRUD operations?

I started my app JuiceAssistant before MCP APIs were available, and thus rely on Function Calling for working with my data layer. One of my competitive advantages is that I got a fairly large number of functions (some of which are complex) working with gpt4o-mini, making it extremely cost effective and allowing me to serve customers without metering.

The two challenges I face regularly with Function Calling are:

  1. getting the small model to correctly call the correct function with fine differences in context; eg “remove all inventory items expiring on Friday” vs “remove all expirations for inventory items expiring by friday”
  2. getting the small model to follow the schema without hallucinating parameters or breaking array-type parameters into multiple calls

Is anyone using MCP to handle CRUD operations? If so, what model are you using, and how are you guarding against faulty inputs and fine-tuning context? What do your unit tests look like?

2 Likes

Can totally relate to this. Imho you will eventually have to move to the full model and charge accordingly.

4.1 is slightly cheaper than 4o of course.

MCP for CRUD sounds a pointless change of protocol if you are serving yourself. Probably slower.

1 Like

For our internal application we connect to Salesforce. In my ‘2023’ version I created tons of functions as well (get_account, create_account etc). But as users want more access to more data I recently moved to a generic model (search_object, add_object etc). I am using strict JSON responses and I have detailed prompting about different objects. There is also a 'get_object_fields" function. This all seems to work good - but I have never used the ‘mini’ models ever, because even with my 2023 version the function calling was just never good enough.

1 Like

Thanks. I haven’t had a chance to experiment with MCP yet, and there seems to be a lot of confusion online about it. Maybe you can clarify:

With the inventory example, how do you resolve that discrepancy in MCP? Is there a way to provide additional context to the model such as including in the prompt examples of what kind of language should trigger each tool?

What is the actual benefit of MCP? Is it that it can compile simpler tool calls like “query_row” and “send_email” to satisfy a user command like “send me an inventory report”, or am I wrong and that isn’t how it works? As I’m reading through, it seems like tool calling with an extra layer of abstraction. Is it really just an attempt to make tool calling accessible to vibe coders and nothing more?