How to turn any robot framework library to a mcp server
- Clone your robot library
- open the folder and go to init.py, where the Library class with hybrid core or dynamic core is initiated.
(example)
from robotlibcore import DynamicCore class LibraryName(DynamicCore): def __init__(self): ... - Add the following function to the class
def to_mcp(self):
from mcp.server.fastmcp import FastMCP
mcp = FastMCP(self.__class__.__name__)
for kw in self.keywords.values():
mcp.add_tool(kw)
return mcp
You can use it in any MCP Client
- press ctrl shift p and type
MCP: Open Workspace Folder Configuration. (Click on create if does not exist) - Add the following lines
{
"servers": {
"LibName": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"C:\\somefolder\\ABS Path to The library Root",
"run",
"test.py"] # the new py file name where you run the server
}
}
}
You could run the following Code in a py file in the root folder of library:
from src.LibraryName import LibraryName
if __name__ == "__main__":
LibraryName().to_mcp().run(transport="stdio")
Or
Thats it
You can then check it under ctrl shift p with
MCP: List Servers
I will be documenting a demo using MailClientLibrary
from src.MailClientLibrary import MailClientLibrary
a = MailClientLibrary(Username="user", Password="pass", MailServerAddress="127.0.0.1", ImapPorts=[993,143], Pop3Ports=[995,110], SmtpPorts=[465,25]).to_mcp()
a.run(transport='stdio')
print(a)
under project root folder add .cortex/config.toml file with the following input
[mcp_servers.mail-client]
command = "uv"
args = [
"--directory",
"C:\\Repos\\RobotFramework-MailClientLibrary",
"run",
"mail_mcp_server.py",
]
cwd = "C:\\Repos\\RobotFramework-MailClientLibrary"
open a new session and ask: ist all mcp servers you can access