Skip to content

feature: m1-mcp-server added#66

Open
aaronmontilla wants to merge 4 commits into
5G-MAG:developmentfrom
aaronmontilla:feature/m1-mcp-server
Open

feature: m1-mcp-server added#66
aaronmontilla wants to merge 4 commits into
5G-MAG:developmentfrom
aaronmontilla:feature/m1-mcp-server

Conversation

@aaronmontilla
Copy link
Copy Markdown

m1-mcp-server version 1.0 added

@ErikGaida
Copy link
Copy Markdown

The installation instructions currently use pip directly. I think, it would be better to use a virtual environment, since on modern Debian/Ubuntu systems pip install often fails.

cd M1-mcp
pip install -r requirements.txt
fatal: Zielpfad 'M1-mcp' existiert bereits und ist kein leeres Verzeichnis.
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Comment thread m1-mcp-server/tools/provisioning.py Outdated
Comment thread m1-mcp-server/README.md Outdated
Comment thread m1-mcp-server/tools/metrics_reporting.py Outdated
Comment thread m1-mcp-server/tools/consumption_reporting.py
@dsilhavy
Copy link
Copy Markdown
Contributor

@aaronmontilla Did you check all the comments by @ErikGaida ? If so, can you please resolve the conversations so we know if and how the comments have been addressed. Thank you!

The AF responds with 202 Accepted when deleting sessions, but the code
only checked for 200 and 204, causing the session state not to clear.

Refs 5G-MAG#66
samplingPeriod is a required field per TS26.512 and is now a mandatory
parameter. README updated to use a virtual environment to comply with
PEP 668 restrictions on modern Debian/Ubuntu systems.

Closes 5G-MAG#66
@aaronmontilla
Copy link
Copy Markdown
Author

I have just made the commits to the repository. The issues reported by @ErikGaida should now be resolved.

Comment thread m1-mcp-server/README.md Outdated
Comment thread m1-mcp-server/LICENSE Outdated
@dsilhavy dsilhavy requested a review from jordijoangimenez May 8, 2026 11:24
@aaronmontilla aaronmontilla changed the base branch from main to development May 8, 2026 12:32
…6G acknowledgement

- Remove MIT LICENSE file from m1-mcp-server/ (inherits 5G-MAG Public License from repo root)
- Update README license section to reference 5G-MAG Public License (v1.0)
- Add Agentic-6G project acknowledgement (Grant Agreement No. 101290342, SNS JU / Horizon Europe)
- Fix clone URL from aaronmontilla fork to 5G-MAG/rt-common-shared
@jordijoangimenez
Copy link
Copy Markdown
Contributor

jordijoangimenez commented May 8, 2026

Hi @aaronmontilla, looking at this now I have a general question.

We would like to have a "generic" MCP Server which can be configured to process:

  • 3GPP 5GMS M1 APIs
  • CAMARA APIs.
  • ...

I see now that the tools contain files related to M1. I also see that the PR is called m1-mcp-server

Is there a way to keep here just the generic MCP server which can be used for any API and then put the files related to M1 in the rt-5gms-application-provider?

We would then do the same for CAMARA APIs so there is a rt-camara-examples repo containing any file needed to be inserted in the generic MCP server.

Does it make sense?

Pinging @tlohmar in case there are comments.

@aaronmontilla
Copy link
Copy Markdown
Author

Hi @jordijoangimenez

I would say the answer depends on the deployment we want.
Creating a separate MCP server for each interface will have the following trade-offs:

Pros:

  • Make it easier to handle permissions for the AI Agents
  • Lightweight deployment

Cons:

  • Difficult to pass values between MCP servers
  • Shared utilities must be duplicated (HTTP client, error handling, URL config)
  • The MCP servers must be configured separately in the agent setups

Last two are pretty easy to handle.

I think that there are two questions that would make the difference here:
Do you always need all the APIs? If not, I would create independent MCP servers.
Are the APIs producing outputs that other APIs will depend on? If that is the case, we must consider to implement combined MCP server at least for the APIs with codependencies.

Anyway, I think that this is worth discussing and should be clarified before making a final decision.

@jordijoangimenez
Copy link
Copy Markdown
Contributor

Thanks @aaronmontilla !

Do you always need all the APIs? If not, I would create independent MCP servers.
Looking more for CAMARA APIs (the M1 was more of an example), I see potential dependencies (some optional) between e.g. Dedicated Networks APIs (Networks, Device Access,..) and e.g. QoS Profiles API, Service Area API,...
You could expect that within the sequence of API calls there is a mix of methods from different APIs (from different yamls).

Are the APIs producing outputs that other APIs will depend on? If that is the case, we must consider to implement combined MCP server at least for the APIs with codependencies.
Yes. For instance the outputs of the Network API (the id) will be used to call the Device Access API (assigning the previous id to the device).

My initial thoughts are:

The idea of having a generic server where you push different configuration options doesnt seem feasible.

@dsilhavy
Copy link
Copy Markdown
Contributor

What I would suggest:

  • I would keep MCP server(s) for 5GMS (M1, M5) separate from the MCP server(s) for the CAMARA APIs
  • Put common functionality that can be shared across multiple MCP servers in a dedicated module/library. Then each MCP server can import the common functionality and implement additional logic on top
    • For instance we can put the common functionality in this repository (common-shared)
    • The 5GMS MCP server (using the common functionality) goes into 5GMS-examples

I put this on the agenda for Friday but we can continue discussion here

Comment thread m1-mcp-server/README.md
## Installation

```bash
git clone -b feature/m1-mcp-server https://github.com/5G-MAG/rt-common-shared.git
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use the main branch here, removing -b feature/m1-mcp-server.

@dsilhavy
Copy link
Copy Markdown
Contributor

As discussed I rebased development onto main, this pull request should now only reflect the changes required for the MCP server

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants