frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Show HN: EnrichMCP – A Python ORM for Agents

https://github.com/featureform/enrichmcp
71•bloppe•5h ago
I've been working with the Featureform team on their new open-source project, [EnrichMCP][1], a Python ORM framework that helps AI agents understand and interact with your data in a structured, semantic way.

EnrichMCP is built on top of [MCP][2] and acts like an ORM, but for agents instead of humans. You define your data model using SQLAlchemy, APIs, or custom logic, and EnrichMCP turns it into a type-safe, introspectable interface that agents can discover, traverse, and invoke.

It auto-generates tools from your models, validates all I/O with Pydantic, handles relationships, and supports schema discovery. Agents can go from user → orders → product naturally, just like a developer navigating an ORM.

We use this internally to let agents query production systems, call APIs, apply business logic, and even integrate ML models. It works out of the box with SQLAlchemy and is easy to extend to any data source.

If you're building agentic systems or anything AI-native, I'd love your feedback. Code and docs are here: https://github.com/featureform/enrichmcp. Happy to answer any questions.

[1]: https://github.com/featureform/enrichmcp

[2]: https://modelcontextprotocol.io/introduction

Comments

knowsuchagency•4h ago
Super interesting idea. How feasible would it be to integrate this with Django?
simba-k•4h ago
Very! We had quite a few people do this at a hackathon we hosted this past weekend.
aolfat•4h ago
Woah, it generates the SQLAlchemy automatically? How does this handle auth/security?
simba-k•4h ago
Yep, we can essentially convert from SQLAlchemy into an MCP server.

Auth/Security is interesting in MCP. As of yesterday a new spec was released with MCP servers converted to OAuth resource servers. There's still a lot more work to do on the MCP upstream side, but we're keeping up with it and going to have a deeper integration to have AuthZ support once the upstream enables it.

polskibus•3h ago
This looks very interesting but I’m not sure how to use it well. Would you mind sharing some prompts that use it and solve a real problem that you encountered ?
simba-k•3h ago
Imagine you're building a support agent for DoorDash. A user asks, "Why is my order an hour late?" Most teams today would build a RAG system that surfaces a help center article saying something like, "Here are common reasons orders might be delayed."

That doesn't actually solve the problem. What you really need is access to internal systems. The agent should be able to look up the order, check the courier status, pull the restaurant's delay history, and decide whether to issue a refund. None of that lives in documentation. It lives in your APIs and databases.

LLMs aren't limited by reasoning. They're limited by access.

EnrichMCP gives agents structured access to your real systems. You define your internal data model using Python, similar to how you'd define models in an ORM. EnrichMCP turns those definitions into typed, discoverable tools the LLM can use directly. Everything is schema-aware, validated with Pydantic, and connected by a semantic layer that describes what each piece of data actually means.

You can integrate with SQLAlchemy, REST APIs, or custom logic. Once defined, your agent can use tools like get_order, get_restaurant, or escalate_if_late with no additional prompt engineering.

It feels less like stitching prompts together and more like giving your agent a real interface to your business.

skuenzli•3h ago
This is the motivating example I was looking for on the readme: a client making a request and an agent handling it using the MCP. Along with a log of the agent reasoning its way to the answer.
simba-k•1h ago
Yes but the agent reasoning is going to use an LLM, I sometimes run our openai_chat_agent example just to test things out. Try giving it a shot, ask it to do something then ask it to explain its tool use.

Obviously, it can (and sometimes will) hallucinate and make up why its using a tool. The thing is, we don't really have true LLM explainability so this is the best we can really do.

polskibus•2h ago
are you saying that a current gen LLM can answer such queries with EnrichMCP directly? or does it need guidance via prompts (for example tell it which tables to look at, etc. ) ? I did expose a db schema to LLM before, and it was ok-ish, however often times the devil was in the details (one join wrong, etc.), causing the whole thing to deliver junk answers.

what is your experience with non trivial db schemas?

simba-k•1h ago
So one big difference is that we aren't doing text2sql here, and the framework requires clear descriptions on all fields, entities, and relationships (it literally won't run otherwise).

We also generate a few tools for the LLM specifically to explain the data model to it. It works quite well, even on complex schemas.

The use case is more transactional than analytical, though we've seen it used for both.

I recommend running the openai_chat_agent in examples/ (also supports ollama for local run) and connect it to the shop_api server and ask it a question like : "Find and explain fraud transactions"

polskibus•1h ago
So explicit model description (kind of repeating the schema into explicit model definition) provides better results when used with LLM because it’s closer to the business domain(or maybe the extra step from DDL to business model is what confuses the LLM?). I think I’m failing to grasp why does this approach work better than straight schema fed to Llm.
Sytten•1h ago
This is opening a new can of worm of information disclosure, at least one job the AI won't kill is people in security.

MCP is the new IoT, where S stands for security /s

TZubiri•40m ago
What is the difference between a junior and an agent. Can't you give them smart permissions on a need to know basis?

I guess you also need per user contexts, such that you depend on the user auth to access user data, and the agent can only access that data.

But this same concern exists for employees in big corps. If I work at google, I probably am not able to access arbitrary data, so I can't leak it.

TZubiri•43m ago
Cool. Can you give the agent a db user with restricted read permissions?

Also, generic db question, but can you protect against resource overconsumption? Like if the junior/agent makes a query with 100 joins, can a marshall kill the process and time it out?

dakiol•33m ago
Why wouldn't we just give the agent read permission on a replica db? Wouldn't that be enough for the agent to know about:

- what tables are there

- table schemas and relationships

Based on that, the agent could easily query the tables to extract info. Not sure why we need a "framework" for this.

robmccoll•22m ago
Disclaimer: I don't know the details of how this works.

Time-to-solution and quality would be my guess. In my experience, adding high level important details about the way information is organized to the beginning of the context and then explaining the tools to further explore schema or access data produces much more consistent results rather than each inference having to query the system and build its own world view before trying to figure out how to answer your query and then doing it.

It's a bit like giving you a book or giving you that book without the table of contents and no index, but you you can do basic text search over the whole thing.

revskill•3h ago
Do you provide prisma alternative ?
simba-k•3h ago
Not sure exactly what you mean here. Prisma is an ORM for developers working with databases in TypeScript. EnrichMCP is more like an ORM for AI agents. It’s not focused on replacing Prisma in your backend stack, but it serves a similar role for agents that need to understand and use your data model.

It's also Python.

ljm•1h ago
> agents query production systems

How do you handle PII or other sensitive data that the LLM shouldn’t know or care about?

traverseda•1h ago
That's an odd question. If you have a regular ORM how do you handle sensitive data that your user shouldn't know about? You add some logic or filters so that the user can only query their own data, or other data they have permission to access.

It's also addressed directly in the README. https://github.com/featureform/enrichmcp?tab=readme-ov-file#...

I know LLMs can be scary, but this is the same problem that any ORM or program that handles user data would deal with.

Compiling LLMs into a MegaKernel: A path to low-latency inference

https://zhihaojia.medium.com/compiling-llms-into-a-megakernel-a-path-to-low-latency-inference-cf7840913c17
101•matt_d•3h ago•25 comments

Literate programming tool for any language

https://github.com/zyedidia/Literate
11•LorenDB•48m ago•2 comments

Curved-Crease Sculpture

https://erikdemaine.org/curved/
146•wonger_•8h ago•21 comments

Homegrown Closures for Uxn

https://krzysckh.org/b/Homegrown-closures-for-uxn.html
55•todsacerdoti•5h ago•2 comments

Andrej Karpathy: Software in the era of AI [video]

https://www.youtube.com/watch?v=LCEmiRjPEtQ
1059•sandslash•22h ago•587 comments

Show HN: EnrichMCP – A Python ORM for Agents

https://github.com/featureform/enrichmcp
71•bloppe•5h ago•20 comments

How OpenElections uses LLMs

https://thescoop.org/archives/2025/06/09/how-openelections-uses-llms/index.html
74•m-hodges•6h ago•23 comments

Show HN: A DOS-like hobby OS written in Rust and x86 assembly

https://github.com/krustowski/rou2exOS
133•krustowski•9h ago•26 comments

Show HN: RM2000 Tape Recorder, an audio sampler for macOS

https://rm2000.app
14•marcelox86•2d ago•4 comments

Extracting memorized pieces of books from open-weight language models

https://arxiv.org/abs/2505.12546
34•fzliu•3d ago•11 comments

Guess I'm a Rationalist Now

https://scottaaronson.blog/?p=8908
196•nsoonhui•12h ago•575 comments

Star Quakes and Monster Shock Waves

https://www.caltech.edu/about/news/star-quakes-and-monster-shock-waves
28•gmays•2d ago•4 comments

Estrogen: A Trip Report

https://smoothbrains.net/posts/2025-06-15-estrogen.html
112•sebg•2h ago•68 comments

Show HN: Claude Code Usage Monitor – real-time tracker to dodge usage cut-offs

https://github.com/Maciek-roboblog/Claude-Code-Usage-Monitor
179•Maciej-roboblog•13h ago•101 comments

What would a Kubernetes 2.0 look like

https://matduggan.com/what-would-a-kubernetes-2-0-look-like/
122•Bogdanp•11h ago•191 comments

Flowspace (YC S17) Is Hiring Software Engineers

https://flowspace.applytojob.com/apply/6oDtY2q6E9/Software-Engineer-II
1•mrjasonh•6h ago

Testing a Robust Netcode with Godot

https://studios.ptilouk.net/little-brats/blog/2024-10-23_netcode.html
24•smig0•2d ago•6 comments

Show HN: Unregistry – “docker push” directly to servers without a registry

https://github.com/psviderski/unregistry
611•psviderski•23h ago•135 comments

DNA floating in the air tracks wildlife, viruses, even drugs

https://www.sciencedaily.com/releases/2025/06/250603114822.htm
57•karlperera•3d ago•53 comments

Posit floating point numbers: thin triangles and other tricks (2019)

http://marc-b-reynolds.github.io/math/2019/02/06/Posit1.html
44•fanf2•8h ago•28 comments

String Interpolation in C++ Using Glaze Stencil/Mustache

https://stephenberry.github.io/glaze/stencil-mustache/
5•npalli•3d ago•0 comments

Why do we need DNSSEC?

https://howdnssec.works/why-do-we-need-dnssec/
71•gpi•6h ago•109 comments

Visual History of the Latin Alphabet

https://uclab.fh-potsdam.de/arete/en
100•speckx•2d ago•64 comments

Munich from a Hamburger's perspective

https://mertbulan.com/2025/06/14/munich-from-a-hamburgers-perspective/
98•toomuchtodo•4d ago•81 comments

From LLM to AI Agent: What's the Real Journey Behind AI System Development?

https://www.codelink.io/blog/post/ai-system-development-llm-rag-ai-workflow-agent
111•codelink•13h ago•35 comments

Juneteenth in Photos

https://texashighways.com/travel-news/the-history-of-juneteenth-in-photos/
174•ohjeez•5h ago•118 comments

Getting Started Strudel

https://strudel.cc/workshop/getting-started/
125•rcarmo•3d ago•48 comments

Elliptic Curves as Art

https://elliptic-curves.art/
196•nill0•19h ago•24 comments

My iPhone 8 Refuses to Die: Now It's a Solar-Powered Vision OCR Server

https://terminalbytes.com/iphone-8-solar-powered-vision-ocr-server/
421•hemant6488•1d ago•177 comments

Geochronology supports LGM age for human tracks at White Sands, New Mexico

https://www.science.org/doi/10.1126/sciadv.adv4951
33•gametorch•7h ago•14 comments