# Integrum – Reflection based MCP Server from any Python module or library

> Source: <https://nmilosev.svbtle.com/integrum-reflection-based-mcp-server-from-any-python-module-or-library>
> Published: 2026-10-09 19:03:31+00:00

# 
[Integrum - Reflection based MCP Server from any Python module or library](https://nmilosev.svbtle.com/integrum-reflection-based-mcp-server-from-any-python-module-or-library)

Yesterday I open sourced [Integrum](https://github.com/alphadeepai/integrum), a library that is a part of [AlphaDeep](https://alphadeep.ai) world. It allows you to quickly create MCP server(s) from existing Python libraries or modules (or even plain classes!). It is released with MIT license and I hope somebody else also finds it useful for a more formal approach to giving agents additional capabilities (compared to just letting them writing arbitrary code with or without a sandbox).

Couple of interesting things about it:

### State Management [#](#state-management_3)

Obviously not all Python code is functional, so some state management is required. I opted for a simple in memory object store pattern with keys being “model-friendly” -> they are words to save tokens. Also there is tuple unpacking, array access and other simple needed things to get started.

### Multi-user isolation [#](#multiuser-isolation_3)

LLM sessions are stateless by design so I thought it would be hard to keep track of which object belongs to which user. Luckily after inspecting FastMCP implementation it seems like context is present (for HTTP/SSE anyway) so that didn’t turn out to be that difficult in the end.

## Gemma experiment (recursive self-improvement? :)) [#](#gemma-experiment-recursive-selfimprovement_2)

To test Integrum out I gave Gemma 4 (26B A4B) access to `scikit-learn` Random Forest Classifier and a toy dataset (Iris). [Without much trouble Gemma was able to build and evaluate a small model](https://github.com/alphadeepai/integrum/blob/main/examples/gemma_sklearn_session.md). It didn’t experiment with hyperparameter tuning but since it got 100% validation accuracy it didn’t have the opportunity. 

It would be interesting to see what it would do with a “hard” problem. It would also be interesing if we gave it tools to update its own weights to improve performance on some benchmark. :)
