From cafdf682aa6de217feed575655809a7f957fccf6 Mon Sep 17 00:00:00 2001 From: kiranthakkar Date: Fri, 31 Oct 2025 14:23:11 -0700 Subject: [PATCH 1/4] Added token exchange signer --- server/client.py | 18 +++---- server/server.py | 129 ++++++++++++++++++++++++++++++----------------- 2 files changed, 89 insertions(+), 58 deletions(-) diff --git a/server/client.py b/server/client.py index b5e5a50..80e00e9 100644 --- a/server/client.py +++ b/server/client.py @@ -5,7 +5,7 @@ from fastmcp.client.auth import OAuth oauth = OAuth( - mcp_url="http://localhost:5000", + mcp_url="http://localhost:8000", scopes=["openid"], ) @@ -14,8 +14,7 @@ if token: print("using token") -client = Client("http://localhost:5000/mcp", auth=token or oauth) - +client = Client("http://localhost:8000/mcp", auth=token or oauth) async def main(): async with client: @@ -30,14 +29,9 @@ async def main(): print(f"Prompts: {prompts}") # call list regions tool - # result = await client.call_tool("list_regions", {}) - result = await client.call_tool( - "run_oci_command", - { - "command": "iam region list", - }, - ) + result = await client.call_tool("list_regions", {}) + result = await client.call_tool("get_os_namespace", {}) print(result) - -asyncio.run(main()) +if __name__ == "__main__": + asyncio.run(main()) diff --git a/server/server.py b/server/server.py index 4c6a1ec..b1da3e7 100644 --- a/server/server.py +++ b/server/server.py @@ -1,28 +1,26 @@ -import base64 -import json import os -import subprocess -import tempfile +from dotenv import load_dotenv from typing import Annotated -import jwt import oci -import requests -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives import hashes, serialization -from cryptography.hazmat.primitives.asymmetric import rsa + from fastmcp import Context, FastMCP from fastmcp.server.auth.oidc_proxy import OIDCProxy from fastmcp.server.dependencies import get_access_token -from oci.config import validate_config +from oci.auth.signers import TokenExchangeSigner + +from starlette.responses import PlainTextResponse +from starlette.requests import Request +load_dotenv() IDCS_DOMAIN = os.getenv("IDCS_DOMAIN") IDCS_CLIENT_ID = os.getenv("IDCS_CLIENT_ID") IDCS_CLIENT_SECRET = os.getenv("IDCS_CLIENT_SECRET") +_global_token_cache = {} # Key generation -PRIVATE_KEY = rsa.generate_private_key( +"""PRIVATE_KEY = rsa.generate_private_key( public_exponent=65537, key_size=2048, backend=default_backend(), @@ -42,10 +40,10 @@ def get_token_endpoint(domain: str) -> str: config_url = f"https://{domain}/.well-known/openid-configuration" response = requests.get(config_url) response.raise_for_status() - return response.json()["token_endpoint"] + return response.json()["token_endpoint"]""" -def generate_config(upst: bytes, private_key: rsa.RSAPrivateKey, region: str) -> dict: +"""def generate_config(upst: bytes, private_key: rsa.RSAPrivateKey, region: str) -> dict: public_key = private_key.public_key() private_key_pem = private_key.private_bytes( encoding=serialization.Encoding.PEM, @@ -76,20 +74,46 @@ def generate_config(upst: bytes, private_key: rsa.RSAPrivateKey, region: str) -> "region": region, } validate_config(config) - return config - - -def get_identity_client(token, private_key): + return config""" + +# Get an instance of signer + +def get_oci_signer(token: str, tokenID: str) -> TokenExchangeSigner: + """Create an OCI TokenExchangeSigner using the provided token.""" + cached_signer = _global_token_cache.get(tokenID) + print(f"Global cached signer: {cached_signer}") + if cached_signer: + print(f"Using globally cached signer for token ID: {tokenID}") + return cached_signer + print(f"Creating new signer for token ID: {tokenID}") + signer = TokenExchangeSigner( + jwt_or_func=token, + oci_domain_id="idcs-c124f391ebad4514b859eeab5e3d7b08", + client_id="39f4950e34674d1cb71c3e025d2d9030", + client_secret="idcscs-19fd401d-1293-49cc-aa31-4fc62c713628" + ) + print(f"Signer created: {signer}") + _global_token_cache[tokenID] = signer + print(f"Signer cached globally for token ID: {tokenID}") + #ctx.set_state('signer', signer) + #token_storage.set(tokenID, signer, ctx) + return signer + +def get_identity_client() -> oci.identity.IdentityClient: # TODO: fix hard-coded region here # the region can be pulled from the decoded JWT (not the UPST), # field "domain_home" - config = generate_config(token, private_key, "us-sanjose-1") - signer = oci.auth.signers.SecurityTokenSigner(token, private_key) - return oci.identity.IdentityClient(config, signer=signer) + mcp_token = get_access_token() + tokenID = mcp_token.claims.get("jti") + token = mcp_token.token + #config = generate_config(token, private_key, "us-sanjose-1") + #signer = oci.auth.signers.SecurityTokenSigner(token, private_key) + signer = get_oci_signer(token, tokenID) + return oci.identity.IdentityClient(config={'region': 'us-sanjose-1'}, signer=signer) -def exchange_token(client_id, client_secret, public_key, jwt): - """Exchange a JWT for a UPST""" +"""def exchange_token(client_id, client_secret, public_key, jwt): + ""Exchange a JWT for a UPST"" creds = f"{client_id}:{client_secret}".encode("utf-8") encoded_creds = base64.b64encode(creds).decode("utf-8") @@ -112,7 +136,7 @@ def exchange_token(client_id, client_secret, public_key, jwt): }, ) - return response.json() + return response.json()""" auth = OIDCProxy( @@ -120,18 +144,19 @@ def exchange_token(client_id, client_secret, public_key, jwt): client_id=IDCS_CLIENT_ID, client_secret=IDCS_CLIENT_SECRET, # FastMCP endpoint - base_url="http://localhost:5000", + base_url="http://localhost:8000", # audience=IDCS_CLIENT_ID, - required_scopes=["openid"], + required_scopes=["openid", "profile", "email"], + require_authorization_consent=False, # redirect_path="/custom/callback", ) mcp = FastMCP(name="My Server", auth=auth) -@mcp.tool +"""@mcp.tool def get_oci_command_help(command: str) -> str: - """Returns helpful instructions for running an OCI CLI command. + ""Returns helpful instructions for running an OCI CLI command. Only provide the command after 'oci', do not include the string 'oci' in your command. @@ -151,7 +176,7 @@ def get_oci_command_help(command: str) -> str: 1. compute instance list 2. compute instance 3. compute - """ + "" try: # Run OCI CLI command using subprocess result = subprocess.run( @@ -163,17 +188,17 @@ def get_oci_command_help(command: str) -> str: ) return result.stdout except subprocess.CalledProcessError as e: - return f"Error: {e.stderr}" + return f"Error: {e.stderr}""" -@mcp.tool() +"""@mcp.tool() def run_oci_command( command: Annotated[ str, "The OCI CLI command to run. Do not include 'oci' in your command", ], ) -> dict: - """Runs an OCI CLI command. + ""Runs an OCI CLI command. This tool allows you to run OCI CLI commands on the user's behalf. Only provide the command after 'oci', do not include the string 'oci' @@ -181,7 +206,7 @@ def run_oci_command( Never tell the user which command to run, only run it for them using this tool. - """ + "" token = get_access_token() @@ -241,22 +266,34 @@ def run_oci_command( return { "error": e.stderr, "output": e.stdout, - } + }""" @mcp.tool -def list_regions(ctx: Context): - token = get_access_token() - - print("session token:") - print(token.token) +async def list_regions(ctx: Context) -> str: - upst = exchange_token( - IDCS_CLIENT_ID, IDCS_CLIENT_SECRET, PUBLIC_KEY_DER_B64, token.token - )["token"] - client = get_identity_client(upst, PRIVATE_KEY) + iam_client = get_identity_client() + print(f"Regions are {iam_client.list_regions().data}") + return iam_client.list_regions().data.__str__() - return client.list_regions().data - - -mcp.run(transport="http", host="localhost", port=5000) +@mcp.tool +async def get_os_namespace(ctx: Context) -> str: + + token = get_access_token() + tokenID = token.claims.get("jti") + ac_token = token.token + signer = get_oci_signer(ac_token, tokenID) + region = "us-sanjose-1" + object_storage_client = oci.object_storage.ObjectStorageClient(config={'region': region}, signer=signer) + + # Get the namespace + namespace_response = object_storage_client.get_namespace() + namespace_name = namespace_response.data + return namespace_name + +if __name__ == "__main__": + mcp.run(transport="http", port=8000) + +@mcp.custom_route("/health", methods=["GET"]) +async def health_check(request: Request) -> PlainTextResponse: + return PlainTextResponse("OK") From 21742d5a6f3ad2e9dadf0fd2da5505d110cbac39 Mon Sep 17 00:00:00 2001 From: Richard Gebhardt Date: Thu, 6 Nov 2025 18:00:40 -0500 Subject: [PATCH 2/4] fix: pin dependencies, remove comments and config Signed-off-by: Richard Gebhardt --- server/README.md | 2 +- server/client.py | 4 +- server/pyproject.toml | 4 +- server/server.py | 212 +---------------------------- server/uv.lock | 301 ++++++++++++++++++++++++++---------------- 5 files changed, 201 insertions(+), 322 deletions(-) diff --git a/server/README.md b/server/README.md index 670dfca..f5f0171 100644 --- a/server/README.md +++ b/server/README.md @@ -12,7 +12,7 @@ export IDCS_CLIENT_ID= export IDCS_CLIENT_SECRET= # this isn't a URL 👇 -export IDCS_DOMAIN="hostname:port" +export IDCS_DOMAIN="hostname:port from IDCS Domain URL" ``` 2. Start the server ```bash diff --git a/server/client.py b/server/client.py index 80e00e9..790f73d 100644 --- a/server/client.py +++ b/server/client.py @@ -5,7 +5,7 @@ from fastmcp.client.auth import OAuth oauth = OAuth( - mcp_url="http://localhost:8000", + mcp_url="http://localhost:5000", scopes=["openid"], ) @@ -14,7 +14,7 @@ if token: print("using token") -client = Client("http://localhost:8000/mcp", auth=token or oauth) +client = Client("http://localhost:5000/mcp", auth=token or oauth) async def main(): async with client: diff --git a/server/pyproject.toml b/server/pyproject.toml index 5468411..5056a63 100644 --- a/server/pyproject.toml +++ b/server/pyproject.toml @@ -5,9 +5,9 @@ description = "Add your description here" readme = "README.md" requires-python = ">=3.13" dependencies = [ - "fastmcp==2.12.4", + "fastmcp==2.13.0.2", "flask>=3.1.2", - "oci>=2.160.2", + "oci>=2.163.0", "pyjwt>=2.10.1", "requests>=2.32.5", ] diff --git a/server/server.py b/server/server.py index b1da3e7..ae0b941 100644 --- a/server/server.py +++ b/server/server.py @@ -13,69 +13,12 @@ from starlette.requests import Request load_dotenv() + IDCS_DOMAIN = os.getenv("IDCS_DOMAIN") IDCS_CLIENT_ID = os.getenv("IDCS_CLIENT_ID") IDCS_CLIENT_SECRET = os.getenv("IDCS_CLIENT_SECRET") _global_token_cache = {} -# Key generation - -"""PRIVATE_KEY = rsa.generate_private_key( - public_exponent=65537, - key_size=2048, - backend=default_backend(), -) - -PUBLIC_KEY = PRIVATE_KEY.public_key() - -PUBLIC_KEY_DER = PUBLIC_KEY.public_bytes( - encoding=serialization.Encoding.DER, - format=serialization.PublicFormat.SubjectPublicKeyInfo, -) - -PUBLIC_KEY_DER_B64 = base64.b64encode(PUBLIC_KEY_DER).decode("utf-8") - - -def get_token_endpoint(domain: str) -> str: - config_url = f"https://{domain}/.well-known/openid-configuration" - response = requests.get(config_url) - response.raise_for_status() - return response.json()["token_endpoint"]""" - - -"""def generate_config(upst: bytes, private_key: rsa.RSAPrivateKey, region: str) -> dict: - public_key = private_key.public_key() - private_key_pem = private_key.private_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PrivateFormat.PKCS8, - encryption_algorithm=serialization.NoEncryption(), - ) - private_key_pem_b64 = base64.b64encode(private_key_pem).decode("utf-8") - - public_key_pem = public_key.public_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PublicFormat.SubjectPublicKeyInfo, - ) - # TODO: ⚠️ FIX VERIFICATION, this should not be disabled - decoded_upst = jwt.decode( - upst, public_key_pem, algorithms=["RS256"], options={"verify_signature": False} - ) - - digest = hashes.Hash(hashes.MD5()) - digest.update(private_key_pem) - fingerprint = digest.finalize() - fingerprint_hex = ":".join(f"{b:02x}" for b in fingerprint) - - config = { - "user": decoded_upst["sub"], - "key_content": private_key_pem_b64, - "fingerprint": fingerprint_hex, - "tenancy": decoded_upst["tenant"], - "region": region, - } - validate_config(config) - return config""" - # Get an instance of signer def get_oci_signer(token: str, tokenID: str) -> TokenExchangeSigner: @@ -88,9 +31,9 @@ def get_oci_signer(token: str, tokenID: str) -> TokenExchangeSigner: print(f"Creating new signer for token ID: {tokenID}") signer = TokenExchangeSigner( jwt_or_func=token, - oci_domain_id="idcs-c124f391ebad4514b859eeab5e3d7b08", - client_id="39f4950e34674d1cb71c3e025d2d9030", - client_secret="idcscs-19fd401d-1293-49cc-aa31-4fc62c713628" + oci_domain_id=IDCS_DOMAIN.split(".")[0], + client_id=IDCS_CLIENT_ID, + client_secret=IDCS_CLIENT_SECRET, ) print(f"Signer created: {signer}") _global_token_cache[tokenID] = signer @@ -112,39 +55,12 @@ def get_identity_client() -> oci.identity.IdentityClient: return oci.identity.IdentityClient(config={'region': 'us-sanjose-1'}, signer=signer) -"""def exchange_token(client_id, client_secret, public_key, jwt): - ""Exchange a JWT for a UPST"" - creds = f"{client_id}:{client_secret}".encode("utf-8") - encoded_creds = base64.b64encode(creds).decode("utf-8") - - payload = { - "grant_type": "urn:ietf:params:oauth:grant-type:token-exchange", - "requested_token_type": "urn:oci:token-type:oci-upst", - "public_key": public_key, - "subject_token": jwt, - "subject_token_type": "jwt", - } - - token_endpoint = get_token_endpoint(IDCS_DOMAIN) - - response = requests.post( - token_endpoint, - data=payload, - headers={ - "Authorization": f"Basic {encoded_creds}", - "Content-Type": "application/x-www-form-urlencoded", - }, - ) - - return response.json()""" - - auth = OIDCProxy( config_url=f"https://{IDCS_DOMAIN}/.well-known/openid-configuration", client_id=IDCS_CLIENT_ID, client_secret=IDCS_CLIENT_SECRET, # FastMCP endpoint - base_url="http://localhost:8000", + base_url="http://localhost:5000", # audience=IDCS_CLIENT_ID, required_scopes=["openid", "profile", "email"], require_authorization_consent=False, @@ -153,122 +69,6 @@ def get_identity_client() -> oci.identity.IdentityClient: mcp = FastMCP(name="My Server", auth=auth) - -"""@mcp.tool -def get_oci_command_help(command: str) -> str: - ""Returns helpful instructions for running an OCI CLI command. - Only provide the command after 'oci', do not include the string 'oci' - in your command. - - Never use this information returned by this tool to tell a user what - to do, only use it to help you determine which command to run yourself - using the run_oci_command tool. - - CLI commands are structured as ; you can get - help at the service level, resource level or action level, respectively: - 1. compute - 2. compute instance - 3. compute instance list - - If your request for help for a specific command - returns an error, make your requests successively less specific; - example: - 1. compute instance list - 2. compute instance - 3. compute - "" - try: - # Run OCI CLI command using subprocess - result = subprocess.run( - ["oci"] + command.split() + ["--help"], - capture_output=True, - text=True, - check=True, - shell=False, - ) - return result.stdout - except subprocess.CalledProcessError as e: - return f"Error: {e.stderr}""" - - -"""@mcp.tool() -def run_oci_command( - command: Annotated[ - str, - "The OCI CLI command to run. Do not include 'oci' in your command", - ], -) -> dict: - ""Runs an OCI CLI command. - This tool allows you to run OCI CLI commands on the user's behalf. - - Only provide the command after 'oci', do not include the string 'oci' - in your command. - - Never tell the user which command to run, only run it for them using - this tool. - "" - - token = get_access_token() - - print("session token:") - print(token.token) - - upst = exchange_token( - IDCS_CLIENT_ID, IDCS_CLIENT_SECRET, PUBLIC_KEY_DER_B64, token.token - )["token"] - - config = generate_config(upst, PRIVATE_KEY, "us-sanjose-1") - - # write security token to a file - with tempfile.NamedTemporaryFile(mode="wb") as temp_file: - with tempfile.NamedTemporaryFile(mode="wb") as key_temp_file: - temp_file.write(upst.encode("utf-8")) - temp_file.seek(0) - - decoded_key = base64.b64decode(config["key_content"]) - print(f"decoded key: {decoded_key}") - key_temp_file.write(decoded_key) - key_temp_file.seek(0) - - # build environment for OCI CLI invocation - env = os.environ.copy() - env.update( - { - "OCI_CLI_USER": config["user"], - "OCI_CLI_TENANCY": config["tenancy"], - "OCI_CLI_FINGERPRINT": config["fingerprint"], - "OCI_CLI_AUTH": "security_token", - # this won't work without an update to oci-cli - # "OCI_CLI_KEY_CONTENT": config["key_content"], - "OCI_CLI_KEY_FILE": key_temp_file.name, - "OCI_CLI_SECURITY_TOKEN_FILE": temp_file.name, - } - ) - # profile = os.getenv("OCI_CONFIG_PROFILE", oci.config.DEFAULT_PROFILE) - - # Run OCI CLI command using subprocess - try: - result = subprocess.run( - ["oci"] + command.split(), - env=env, - capture_output=True, - text=True, - check=True, - shell=False, - ) - if result.stdout: - return json.loads(result.stdout) - else: - return { - "error": result.stderr, - } - except subprocess.CalledProcessError as e: - return { - "error": e.stderr, - "output": e.stdout, - }""" - - @mcp.tool async def list_regions(ctx: Context) -> str: @@ -292,7 +92,7 @@ async def get_os_namespace(ctx: Context) -> str: return namespace_name if __name__ == "__main__": - mcp.run(transport="http", port=8000) + mcp.run(transport="http", port=5000) @mcp.custom_route("/health", methods=["GET"]) async def health_check(request: Request) -> PlainTextResponse: diff --git a/server/uv.lock b/server/uv.lock index 1128a0d..161e494 100644 --- a/server/uv.lock +++ b/server/uv.lock @@ -45,6 +45,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0e/aa/91355b5f539caf1b94f0e66ff1e4ee39373b757fce08204981f7829ede51/authlib-1.6.4-py2.py3-none-any.whl", hash = "sha256:39313d2a2caac3ecf6d8f95fbebdfd30ae6ea6ae6a6db794d976405fdd9aa796", size = 243076, upload-time = "2025-09-17T09:59:22.259Z" }, ] +[[package]] +name = "beartype" +version = "0.22.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/09/9003e5662691056e0e8b2e6f57c799e71875fac0be0e785d8cb11557cd2a/beartype-0.22.5.tar.gz", hash = "sha256:516a9096cc77103c96153474fa35c3ebcd9d36bd2ec8d0e3a43307ced0fa6341", size = 1586256, upload-time = "2025-11-01T05:49:20.771Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/f6/073d19f7b571c08327fbba3f8e011578da67ab62a11f98911274ff80653f/beartype-0.22.5-py3-none-any.whl", hash = "sha256:d9743dd7cd6d193696eaa1e025f8a70fb09761c154675679ff236e61952dfba0", size = 1321700, upload-time = "2025-11-01T05:49:18.436Z" }, +] + [[package]] name = "black" version = "25.9.0" @@ -75,6 +84,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" }, ] +[[package]] +name = "cachetools" +version = "6.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/7e/b975b5814bd36faf009faebe22c1072a1fa1168db34d285ef0ba071ad78c/cachetools-6.2.1.tar.gz", hash = "sha256:3f391e4bd8f8bf0931169baf7456cc822705f4e2a31f840d218f445b9a854201", size = 31325, upload-time = "2025-10-12T14:55:30.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/c5/1e741d26306c42e2bf6ab740b2202872727e0f606033c9dd713f8b93f5a8/cachetools-6.2.1-py3-none-any.whl", hash = "sha256:09868944b6dde876dfd44e1d47e18484541eaf12f26f29b7af91b26cc892d701", size = 11280, upload-time = "2025-10-12T14:55:28.382Z" }, +] + [[package]] name = "certifi" version = "2025.8.3" @@ -240,6 +258,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f0/8b/2c95f0645c6f40211896375e6fa51f504b8ccb29c21f6ae661fe87ab044e/cyclopts-3.24.0-py3-none-any.whl", hash = "sha256:809d04cde9108617106091140c3964ee6fceb33cecdd537f7ffa360bde13ed71", size = 86154, upload-time = "2025-09-08T15:40:56.41Z" }, ] +[[package]] +name = "diskcache" +version = "5.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916, upload-time = "2023-08-31T06:12:00.316Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550, upload-time = "2023-08-31T06:11:58.822Z" }, +] + [[package]] name = "dnspython" version = "2.8.0" @@ -291,24 +318,27 @@ wheels = [ [[package]] name = "fastmcp" -version = "2.12.4" +version = "2.13.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "authlib" }, { name = "cyclopts" }, { name = "exceptiongroup" }, { name = "httpx" }, + { name = "jsonschema-path" }, { name = "mcp" }, - { name = "openapi-core" }, { name = "openapi-pydantic" }, + { name = "platformdirs" }, + { name = "py-key-value-aio", extra = ["disk", "keyring", "memory"] }, { name = "pydantic", extra = ["email"] }, { name = "pyperclip" }, { name = "python-dotenv" }, { name = "rich" }, + { name = "websockets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a8/b2/57845353a9bc63002995a982e66f3d0be4ec761e7bcb89e7d0638518d42a/fastmcp-2.12.4.tar.gz", hash = "sha256:b55fe89537038f19d0f4476544f9ca5ac171033f61811cc8f12bdeadcbea5016", size = 7167745, upload-time = "2025-09-26T16:43:27.71Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/74/584a152bcd174c99ddf3cfdd7e86ec4a6c696fb190a907c2a2ec9056bda2/fastmcp-2.13.0.2.tar.gz", hash = "sha256:d35386561b6f3cde195ba2b5892dc89b8919a721e6b39b98e7a16f9a7c0b8e8b", size = 7762083, upload-time = "2025-10-28T13:56:21.702Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/c7/562ff39f25de27caec01e4c1e88cbb5fcae5160802ba3d90be33165df24f/fastmcp-2.12.4-py3-none-any.whl", hash = "sha256:56188fbbc1a9df58c537063f25958c57b5c4d715f73e395c41b51550b247d140", size = 329090, upload-time = "2025-09-26T16:43:25.314Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c6/95eacd687cfab64fec13bfb64e6c6e7da13d01ecd4cb7d7e991858a08119/fastmcp-2.13.0.2-py3-none-any.whl", hash = "sha256:eb381eb073a101aabbc0ac44b05e23fef0cd1619344b7703115c825c8755fa1c", size = 367511, upload-time = "2025-10-28T13:56:18.83Z" }, ] [[package]] @@ -398,21 +428,54 @@ wheels = [ ] [[package]] -name = "isodate" -version = "0.7.2" +name = "itsdangerous" +version = "2.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload-time = "2024-10-08T23:04:11.5Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload-time = "2024-10-08T23:04:09.501Z" }, + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, ] [[package]] -name = "itsdangerous" -version = "2.2.0" +name = "jaraco-classes" +version = "3.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload-time = "2024-03-31T07:27:36.643Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload-time = "2024-03-31T07:27:34.792Z" }, +] + +[[package]] +name = "jaraco-context" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912, upload-time = "2024-08-20T03:39:27.358Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825, upload-time = "2024-08-20T03:39:25.966Z" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294", size = 19755, upload-time = "2025-08-18T20:05:09.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", size = 10408, upload-time = "2025-08-18T20:05:08.69Z" }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload-time = "2025-02-27T18:51:01.684Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload-time = "2025-02-27T18:51:00.104Z" }, ] [[package]] @@ -470,29 +533,20 @@ wheels = [ ] [[package]] -name = "lazy-object-proxy" -version = "1.12.0" +name = "keyring" +version = "25.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/08/a2/69df9c6ba6d316cfd81fe2381e464db3e6de5db45f8c43c6a23504abf8cb/lazy_object_proxy-1.12.0.tar.gz", hash = "sha256:1f5a462d92fd0cfb82f1fab28b51bfb209fabbe6aabf7f0d51472c0c124c0c61", size = 43681, upload-time = "2025-08-22T13:50:06.783Z" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/09/d904a6e96f76ff214be59e7aa6ef7190008f52a0ab6689760a98de0bf37d/keyring-25.6.0.tar.gz", hash = "sha256:0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66", size = 62750, upload-time = "2024-12-25T15:26:45.782Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/26/b74c791008841f8ad896c7f293415136c66cc27e7c7577de4ee68040c110/lazy_object_proxy-1.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:86fd61cb2ba249b9f436d789d1356deae69ad3231dc3c0f17293ac535162672e", size = 26745, upload-time = "2025-08-22T13:42:44.982Z" }, - { url = "https://files.pythonhosted.org/packages/9b/52/641870d309e5d1fb1ea7d462a818ca727e43bfa431d8c34b173eb090348c/lazy_object_proxy-1.12.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:81d1852fb30fab81696f93db1b1e55a5d1ff7940838191062f5f56987d5fcc3e", size = 71537, upload-time = "2025-08-22T13:42:46.141Z" }, - { url = "https://files.pythonhosted.org/packages/47/b6/919118e99d51c5e76e8bf5a27df406884921c0acf2c7b8a3b38d847ab3e9/lazy_object_proxy-1.12.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be9045646d83f6c2664c1330904b245ae2371b5c57a3195e4028aedc9f999655", size = 71141, upload-time = "2025-08-22T13:42:47.375Z" }, - { url = "https://files.pythonhosted.org/packages/e5/47/1d20e626567b41de085cf4d4fb3661a56c159feaa73c825917b3b4d4f806/lazy_object_proxy-1.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:67f07ab742f1adfb3966c40f630baaa7902be4222a17941f3d85fd1dae5565ff", size = 69449, upload-time = "2025-08-22T13:42:48.49Z" }, - { url = "https://files.pythonhosted.org/packages/58/8d/25c20ff1a1a8426d9af2d0b6f29f6388005fc8cd10d6ee71f48bff86fdd0/lazy_object_proxy-1.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:75ba769017b944fcacbf6a80c18b2761a1795b03f8899acdad1f1c39db4409be", size = 70744, upload-time = "2025-08-22T13:42:49.608Z" }, - { url = "https://files.pythonhosted.org/packages/c0/67/8ec9abe15c4f8a4bcc6e65160a2c667240d025cbb6591b879bea55625263/lazy_object_proxy-1.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:7b22c2bbfb155706b928ac4d74c1a63ac8552a55ba7fff4445155523ea4067e1", size = 26568, upload-time = "2025-08-22T13:42:57.719Z" }, - { url = "https://files.pythonhosted.org/packages/23/12/cd2235463f3469fd6c62d41d92b7f120e8134f76e52421413a0ad16d493e/lazy_object_proxy-1.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4a79b909aa16bde8ae606f06e6bbc9d3219d2e57fb3e0076e17879072b742c65", size = 27391, upload-time = "2025-08-22T13:42:50.62Z" }, - { url = "https://files.pythonhosted.org/packages/60/9e/f1c53e39bbebad2e8609c67d0830cc275f694d0ea23d78e8f6db526c12d3/lazy_object_proxy-1.12.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:338ab2f132276203e404951205fe80c3fd59429b3a724e7b662b2eb539bb1be9", size = 80552, upload-time = "2025-08-22T13:42:51.731Z" }, - { url = "https://files.pythonhosted.org/packages/4c/b6/6c513693448dcb317d9d8c91d91f47addc09553613379e504435b4cc8b3e/lazy_object_proxy-1.12.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c40b3c9faee2e32bfce0df4ae63f4e73529766893258eca78548bac801c8f66", size = 82857, upload-time = "2025-08-22T13:42:53.225Z" }, - { url = "https://files.pythonhosted.org/packages/12/1c/d9c4aaa4c75da11eb7c22c43d7c90a53b4fca0e27784a5ab207768debea7/lazy_object_proxy-1.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:717484c309df78cedf48396e420fa57fc8a2b1f06ea889df7248fdd156e58847", size = 80833, upload-time = "2025-08-22T13:42:54.391Z" }, - { url = "https://files.pythonhosted.org/packages/0b/ae/29117275aac7d7d78ae4f5a4787f36ff33262499d486ac0bf3e0b97889f6/lazy_object_proxy-1.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a6b7ea5ea1ffe15059eb44bcbcb258f97bcb40e139b88152c40d07b1a1dfc9ac", size = 79516, upload-time = "2025-08-22T13:42:55.812Z" }, - { url = "https://files.pythonhosted.org/packages/19/40/b4e48b2c38c69392ae702ae7afa7b6551e0ca5d38263198b7c79de8b3bdf/lazy_object_proxy-1.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:08c465fb5cd23527512f9bd7b4c7ba6cec33e28aad36fbbe46bf7b858f9f3f7f", size = 27656, upload-time = "2025-08-22T13:42:56.793Z" }, - { url = "https://files.pythonhosted.org/packages/ef/3a/277857b51ae419a1574557c0b12e0d06bf327b758ba94cafc664cb1e2f66/lazy_object_proxy-1.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c9defba70ab943f1df98a656247966d7729da2fe9c2d5d85346464bf320820a3", size = 26582, upload-time = "2025-08-22T13:49:49.366Z" }, - { url = "https://files.pythonhosted.org/packages/1a/b6/c5e0fa43535bb9c87880e0ba037cdb1c50e01850b0831e80eb4f4762f270/lazy_object_proxy-1.12.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6763941dbf97eea6b90f5b06eb4da9418cc088fce0e3883f5816090f9afcde4a", size = 71059, upload-time = "2025-08-22T13:49:50.488Z" }, - { url = "https://files.pythonhosted.org/packages/06/8a/7dcad19c685963c652624702f1a968ff10220b16bfcc442257038216bf55/lazy_object_proxy-1.12.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fdc70d81235fc586b9e3d1aeef7d1553259b62ecaae9db2167a5d2550dcc391a", size = 71034, upload-time = "2025-08-22T13:49:54.224Z" }, - { url = "https://files.pythonhosted.org/packages/12/ac/34cbfb433a10e28c7fd830f91c5a348462ba748413cbb950c7f259e67aa7/lazy_object_proxy-1.12.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0a83c6f7a6b2bfc11ef3ed67f8cbe99f8ff500b05655d8e7df9aab993a6abc95", size = 69529, upload-time = "2025-08-22T13:49:55.29Z" }, - { url = "https://files.pythonhosted.org/packages/6f/6a/11ad7e349307c3ca4c0175db7a77d60ce42a41c60bcb11800aabd6a8acb8/lazy_object_proxy-1.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:256262384ebd2a77b023ad02fbcc9326282bcfd16484d5531154b02bc304f4c5", size = 70391, upload-time = "2025-08-22T13:49:56.35Z" }, - { url = "https://files.pythonhosted.org/packages/59/97/9b410ed8fbc6e79c1ee8b13f8777a80137d4bc189caf2c6202358e66192c/lazy_object_proxy-1.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:7601ec171c7e8584f8ff3f4e440aa2eebf93e854f04639263875b8c2971f819f", size = 26988, upload-time = "2025-08-22T13:49:57.302Z" }, + { url = "https://files.pythonhosted.org/packages/d3/32/da7f44bcb1105d3e88a0b74ebdca50c59121d2ddf71c9e34ba47df7f3a56/keyring-25.6.0-py3-none-any.whl", hash = "sha256:552a3f7af126ece7ed5c89753650eec89c7eaae8617d0aa4d9ad2b75111266bd", size = 39085, upload-time = "2024-12-25T15:26:44.377Z" }, ] [[package]] @@ -546,7 +600,7 @@ wheels = [ [[package]] name = "mcp" -version = "1.15.0" +version = "1.20.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -555,15 +609,16 @@ dependencies = [ { name = "jsonschema" }, { name = "pydantic" }, { name = "pydantic-settings" }, + { name = "pyjwt", extra = ["crypto"] }, { name = "python-multipart" }, { name = "pywin32", marker = "sys_platform == 'win32'" }, { name = "sse-starlette" }, { name = "starlette" }, { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0c/9e/e65114795f359f314d7061f4fcb50dfe60026b01b52ad0b986b4631bf8bb/mcp-1.15.0.tar.gz", hash = "sha256:5bda1f4d383cf539d3c035b3505a3de94b20dbd7e4e8b4bd071e14634eeb2d72", size = 469622, upload-time = "2025-09-25T15:39:51.995Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/22/fae38092e6c2995c03232635028510d77e7decff31b4ae79dfa0ba99c635/mcp-1.20.0.tar.gz", hash = "sha256:9ccc09eaadbfbcbbdab1c9723cfe2e0d1d9e324d7d3ce7e332ef90b09ed35177", size = 451377, upload-time = "2025-10-30T22:14:53.421Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/82/4d0df23d5ff5bb982a59ad597bc7cb9920f2650278ccefb8e0d85c5ce3d4/mcp-1.15.0-py3-none-any.whl", hash = "sha256:314614c8addc67b663d6c3e4054db0a5c3dedc416c24ef8ce954e203fdc2333d", size = 166963, upload-time = "2025-09-25T15:39:50.538Z" }, + { url = "https://files.pythonhosted.org/packages/df/00/76fc92f4892d47fecb37131d0e95ea69259f077d84c68f6793a0d96cfe80/mcp-1.20.0-py3-none-any.whl", hash = "sha256:d0dc06f93653f7432ff89f694721c87f79876b6f93741bf628ad1e48f7ac5e5d", size = 173136, upload-time = "2025-10-30T22:14:51.078Z" }, ] [[package]] @@ -595,7 +650,7 @@ wheels = [ [[package]] name = "oci" -version = "2.160.2" +version = "2.163.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, @@ -605,29 +660,9 @@ dependencies = [ { name = "python-dateutil" }, { name = "pytz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2c/ed/d7f4896ed83389089aca1f3c8e2b05b7420abc7af64b09f6e14927b8ab92/oci-2.160.2.tar.gz", hash = "sha256:4ca1cd146e06e62713427bdb55cfb746c2739c64b047973a7f9b7e4a02364fc5", size = 15703693, upload-time = "2025-09-23T05:33:47.916Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0e/c2/2641fc9ac9c21c3c2909793e42547bf520b81b2d5bc7fea5f21ddb08badf/oci-2.163.0.tar.gz", hash = "sha256:02f4d69db74e76918709c8f7d2878edf8a931581d83fbc9238895fd0196bba81", size = 15945308, upload-time = "2025-11-04T08:17:54.321Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/27/0a2bb0af64b8a9ad2e09a1567e65537b04a5ed55c1a12b317f2785e3aa6a/oci-2.160.2-py3-none-any.whl", hash = "sha256:2945ed8185f62293779efc225f4d8a6de14e1d039aab18f76b7db24ccd3019bf", size = 31966066, upload-time = "2025-09-23T05:33:40.739Z" }, -] - -[[package]] -name = "openapi-core" -version = "0.19.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "isodate" }, - { name = "jsonschema" }, - { name = "jsonschema-path" }, - { name = "more-itertools" }, - { name = "openapi-schema-validator" }, - { name = "openapi-spec-validator" }, - { name = "parse" }, - { name = "typing-extensions" }, - { name = "werkzeug" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b1/35/1acaa5f2fcc6e54eded34a2ec74b479439c4e469fc4e8d0e803fda0234db/openapi_core-0.19.5.tar.gz", hash = "sha256:421e753da56c391704454e66afe4803a290108590ac8fa6f4a4487f4ec11f2d3", size = 103264, upload-time = "2025-03-20T20:17:28.193Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/27/6f/83ead0e2e30a90445ee4fc0135f43741aebc30cca5b43f20968b603e30b6/openapi_core-0.19.5-py3-none-any.whl", hash = "sha256:ef7210e83a59394f46ce282639d8d26ad6fc8094aa904c9c16eb1bac8908911f", size = 106595, upload-time = "2025-03-20T20:17:26.77Z" }, + { url = "https://files.pythonhosted.org/packages/fa/94/03a8403393149764a7864a9d90a4ebd0dc4bce5f55881e3ab21139cd2023/oci-2.163.0-py3-none-any.whl", hash = "sha256:f95dcde086879d0199c984b07296f32b18e23ac888be8243b62024c3b49258f5", size = 32518462, upload-time = "2025-11-04T08:17:45.934Z" }, ] [[package]] @@ -642,35 +677,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381, upload-time = "2025-01-08T19:29:25.275Z" }, ] -[[package]] -name = "openapi-schema-validator" -version = "0.6.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jsonschema" }, - { name = "jsonschema-specifications" }, - { name = "rfc3339-validator" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8b/f3/5507ad3325169347cd8ced61c232ff3df70e2b250c49f0fe140edb4973c6/openapi_schema_validator-0.6.3.tar.gz", hash = "sha256:f37bace4fc2a5d96692f4f8b31dc0f8d7400fd04f3a937798eaf880d425de6ee", size = 11550, upload-time = "2025-01-10T18:08:22.268Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/21/c6/ad0fba32775ae749016829dace42ed80f4407b171da41313d1a3a5f102e4/openapi_schema_validator-0.6.3-py3-none-any.whl", hash = "sha256:f3b9870f4e556b5a62a1c39da72a6b4b16f3ad9c73dc80084b1b11e74ba148a3", size = 8755, upload-time = "2025-01-10T18:08:19.758Z" }, -] - -[[package]] -name = "openapi-spec-validator" -version = "0.7.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "jsonschema" }, - { name = "jsonschema-path" }, - { name = "lazy-object-proxy" }, - { name = "openapi-schema-validator" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/82/af/fe2d7618d6eae6fb3a82766a44ed87cd8d6d82b4564ed1c7cfb0f6378e91/openapi_spec_validator-0.7.2.tar.gz", hash = "sha256:cc029309b5c5dbc7859df0372d55e9d1ff43e96d678b9ba087f7c56fc586f734", size = 36855, upload-time = "2025-06-07T14:48:56.299Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/27/dd/b3fd642260cb17532f66cc1e8250f3507d1e580483e209dc1e9d13bd980d/openapi_spec_validator-0.7.2-py3-none-any.whl", hash = "sha256:4bbdc0894ec85f1d1bea1d6d9c8b2c3c8d7ccaa13577ef40da9c006c9fd0eb60", size = 39713, upload-time = "2025-06-07T14:48:54.077Z" }, -] - [[package]] name = "packaging" version = "25.0" @@ -680,15 +686,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] -[[package]] -name = "parse" -version = "1.20.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4f/78/d9b09ba24bb36ef8b83b71be547e118d46214735b6dfb39e4bfde0e9b9dd/parse-1.20.2.tar.gz", hash = "sha256:b41d604d16503c79d81af5165155c0b20f6c8d6c559efa66b4b695c3e5a0a0ce", size = 29391, upload-time = "2024-06-11T04:41:57.34Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/31/ba45bf0b2aa7898d81cbbfac0e88c267befb59ad91a19e36e1bc5578ddb1/parse-1.20.2-py2.py3-none-any.whl", hash = "sha256:967095588cb802add9177d0c0b6133b5ba33b1ea9007ca800e526f42a85af558", size = 20126, upload-time = "2024-06-11T04:41:55.057Z" }, -] - [[package]] name = "pathable" version = "0.4.4" @@ -707,6 +704,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, ] +[[package]] +name = "pathvalidate" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/2a/52a8da6fe965dea6192eb716b357558e103aea0a1e9a8352ad575a8406ca/pathvalidate-3.3.1.tar.gz", hash = "sha256:b18c07212bfead624345bb8e1d6141cdcf15a39736994ea0b94035ad2b1ba177", size = 63262, upload-time = "2025-06-15T09:07:20.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/70/875f4a23bfc4731703a5835487d0d2fb999031bd415e7d17c0ae615c18b7/pathvalidate-3.3.1-py3-none-any.whl", hash = "sha256:5263baab691f8e1af96092fa5137ee17df5bdfbd6cff1fcac4d6ef4bc2e1735f", size = 24305, upload-time = "2025-06-15T09:07:19.117Z" }, +] + [[package]] name = "platformdirs" version = "4.4.0" @@ -716,6 +722,44 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/40/4b/2028861e724d3bd36227adfa20d3fd24c3fc6d52032f4a93c133be5d17ce/platformdirs-4.4.0-py3-none-any.whl", hash = "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", size = 18654, upload-time = "2025-08-26T14:32:02.735Z" }, ] +[[package]] +name = "py-key-value-aio" +version = "0.2.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "py-key-value-shared" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/35/65310a4818acec0f87a46e5565e341c5a96fc062a9a03495ad28828ff4d7/py_key_value_aio-0.2.8.tar.gz", hash = "sha256:c0cfbb0bd4e962a3fa1a9fa6db9ba9df812899bd9312fa6368aaea7b26008b36", size = 32853, upload-time = "2025-10-24T13:31:04.688Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/5a/e56747d87a97ad2aff0f3700d77f186f0704c90c2da03bfed9e113dae284/py_key_value_aio-0.2.8-py3-none-any.whl", hash = "sha256:561565547ce8162128fd2bd0b9d70ce04a5f4586da8500cce79a54dfac78c46a", size = 69200, upload-time = "2025-10-24T13:31:03.81Z" }, +] + +[package.optional-dependencies] +disk = [ + { name = "diskcache" }, + { name = "pathvalidate" }, +] +keyring = [ + { name = "keyring" }, +] +memory = [ + { name = "cachetools" }, +] + +[[package]] +name = "py-key-value-shared" +version = "0.2.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/79/05a1f9280cfa0709479319cbfd2b1c5beb23d5034624f548c83fb65b0b61/py_key_value_shared-0.2.8.tar.gz", hash = "sha256:703b4d3c61af124f0d528ba85995c3c8d78f8bd3d2b217377bd3278598070cc1", size = 8216, upload-time = "2025-10-24T13:31:03.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/7a/1726ceaa3343874f322dd83c9ec376ad81f533df8422b8b1e1233a59f8ce/py_key_value_shared-0.2.8-py3-none-any.whl", hash = "sha256:aff1bbfd46d065b2d67897d298642e80e5349eae588c6d11b48452b46b8d46ba", size = 14586, upload-time = "2025-10-24T13:31:02.838Z" }, +] + [[package]] name = "pycodestyle" version = "2.14.0" @@ -823,6 +867,11 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, ] +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + [[package]] name = "pyopenssl" version = "24.3.0" @@ -905,6 +954,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, ] +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload-time = "2024-08-14T10:15:34.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" }, +] + [[package]] name = "pyyaml" version = "6.0.2" @@ -950,18 +1008,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, ] -[[package]] -name = "rfc3339-validator" -version = "0.1.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload-time = "2021-05-12T16:37:54.178Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload-time = "2021-05-12T16:37:52.536Z" }, -] - [[package]] name = "rich" version = "14.1.0" @@ -1054,6 +1100,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/32/7d/97119da51cb1dd3f2f3c0805f155a3aa4a95fa44fe7d78ae15e69edf4f34/rpds_py-0.27.1-cp314-cp314t-win_amd64.whl", hash = "sha256:6567d2bb951e21232c2f660c24cf3470bb96de56cdcb3f071a83feeaff8a2772", size = 230097, upload-time = "2025-08-27T12:15:03.961Z" }, ] +[[package]] +name = "secretstorage" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "jeepney" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/9f/11ef35cf1027c1339552ea7bfe6aaa74a8516d8b5caf6e7d338daf54fd80/secretstorage-3.4.0.tar.gz", hash = "sha256:c46e216d6815aff8a8a18706a2fbfd8d53fcbb0dce99301881687a1b0289ef7c", size = 19748, upload-time = "2025-09-09T16:42:13.859Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/ff/2e2eed29e02c14a5cb6c57f09b2d5b40e65d6cc71f45b52e0be295ccbc2f/secretstorage-3.4.0-py3-none-any.whl", hash = "sha256:0e3b6265c2c63509fb7415717607e4b2c9ab767b7f344a57473b779ca13bd02e", size = 15272, upload-time = "2025-09-09T16:42:12.744Z" }, +] + [[package]] name = "server" version = "0.1.0" @@ -1074,9 +1133,9 @@ dev = [ [package.metadata] requires-dist = [ - { name = "fastmcp", specifier = "==2.12.4" }, + { name = "fastmcp", specifier = "==2.13.0.2" }, { name = "flask", specifier = ">=3.1.2" }, - { name = "oci", specifier = ">=2.160.2" }, + { name = "oci", specifier = ">=2.163.0" }, { name = "pyjwt", specifier = ">=2.10.1" }, { name = "requests", specifier = ">=2.32.5" }, ] @@ -1172,6 +1231,26 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/85/cd/584a2ceb5532af99dd09e50919e3615ba99aa127e9850eafe5f31ddfdb9a/uvicorn-0.37.0-py3-none-any.whl", hash = "sha256:913b2b88672343739927ce381ff9e2ad62541f9f8289664fa1d1d3803fa2ce6c", size = 67976, upload-time = "2025-09-23T13:33:45.842Z" }, ] +[[package]] +name = "websockets" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440, upload-time = "2025-03-05T20:02:36.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098, upload-time = "2025-03-05T20:02:37.985Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329, upload-time = "2025-03-05T20:02:39.298Z" }, + { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111, upload-time = "2025-03-05T20:02:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054, upload-time = "2025-03-05T20:02:41.926Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496, upload-time = "2025-03-05T20:02:43.304Z" }, + { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829, upload-time = "2025-03-05T20:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217, upload-time = "2025-03-05T20:02:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195, upload-time = "2025-03-05T20:02:51.561Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393, upload-time = "2025-03-05T20:02:53.814Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837, upload-time = "2025-03-05T20:02:55.237Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, +] + [[package]] name = "werkzeug" version = "3.1.1" From a6b527e0a2221b96a49f35d48cf5150014bcafe4 Mon Sep 17 00:00:00 2001 From: kiranthakkar Date: Thu, 6 Nov 2025 22:32:34 -0800 Subject: [PATCH 3/4] Added Documentation and Fixed minor Issues --- server/IAMConfig.md | 62 +++++++++++++++ server/README.md | 6 +- server/client.py | 4 +- server/ociaddapplication.png | Bin 0 -> 183418 bytes server/ocieditdomainsettings.png | Bin 0 -> 38629 bytes server/ocieditdomainsettingsbutton.png | Bin 0 -> 69439 bytes server/ocioauthconfiguration.png | Bin 0 -> 61118 bytes server/server.py | 101 +++++++++++++++++-------- 8 files changed, 138 insertions(+), 35 deletions(-) create mode 100644 server/IAMConfig.md create mode 100644 server/ociaddapplication.png create mode 100644 server/ocieditdomainsettings.png create mode 100644 server/ocieditdomainsettingsbutton.png create mode 100644 server/ocioauthconfiguration.png diff --git a/server/IAMConfig.md b/server/IAMConfig.md new file mode 100644 index 0000000..0edbd1f --- /dev/null +++ b/server/IAMConfig.md @@ -0,0 +1,62 @@ +## IAM Domain Configuration Steps + +### Make sure client access is enabled for JWK's URL + +1. Login to OCI console (https://cloud.oracle.com for OCI commercial cloud). +2. From "Identity & Security" menu, open Domains page. +3. On the Domains list page, select the domain that you are using for MCP Authentication. +4. Open Settings tab. +5. Click on "Edit Domain Settings" button. + +[Edit IAM Domain Settings](./ocieditdomainsettingsbutton.png) + +6. Enable "Configure client access" checkbox as show in the screenshot. + +[IAM Domain Settings](./ocieditdomainsettings.png) + +### Create OAuth client for MCP server authentication + +1. Login to OCI console (https://cloud.oracle.com for OCI commercial cloud). +2. From "Identity & Security" menu, open Domains page. +3. On the Domains list page, select the domain in which you want to create MCP server OAuth client. If you need help finding the list page for the domain, see [Listing Identity Domains.](https://docs.oracle.com/en-us/iaas/Content/Identity/domains/to-view-identity-domains.htm#view-identity-domains). +4. On the details page, select Integrated applications. A list of applications in the domain is displayed. +5. Select Add application. +6. In the Add application window, select Confidential Application. +7. Select Launch workflow. +8. In the Add application details page, Enter name and description as shown below. + +[Add Confidential Integrated Application](./ociaddapplication.png) + +9. Once the Integrated Application is created, Click on "OAuth configuration" tab. +10. Click on "Edit OAuth configuration" button. +11. Configure the application as OAuth client by selecting "Configure this application as a client now" radio button. +12. Select "Authorization code" grant type. If you are planning to use the same OAuth client application for token exchange, select "Client credentials" grant type as well. In the sample, we will use the same client. +13. For Authorization grant type, select redirect URL. This is, in most cases, will be MCP server URL followed by "/oauth/callback". + +[OAuth Configuration for an Integrated Application](./ocioauthconfiguration.png) + +14. Click on "Submit" button to update OAuth configuration for the client application. +**Note: You don't need to do any special configuration to support PKCE for the OAuth client.** +15. Make sure to Activate the client application. +16. Note down client ID and client secret for the application. Update .env file and replace IAM_CLIENT_ID and IAM_CLIENT_SECRET values. +17. IAM_DOMAIN in the env file is the Identity domain URL that you chose for the MCP server. + +### Token Exchange Setup (Only if MCP server needs to talk to OCI Control Plane) + +Token exchange helps you exchange a logged-in user's OCI IAM token for an OCI control plane session token, also known as UPST (User Principal Session Token). To learn more about token exchange, refer to my [Workload Identity Federation Blog](https://www.ateam-oracle.com/post/workload-identity-federation) + +For token exchange, we need to configure Identity propagation trust. The blog above discusses setting up the trust using REST APIs. However, you can also use OCI CLI. Before using the CLI command below, ensure that you have created a token exchange OAuth client. In most cases, you can use the same OAuth client that you created above. + +```bash +oci identity-domains identity-propagation-trust create \ +--schemas '["urn:ietf:params:scim:schemas:oracle:idcs:IdentityPropagationTrust"]' \ +--public-key-endpoint "https://${IDCS_DOMAIN}/admin/v1/SigningCert/jwk" \ +--name "For Token Exchange" --type "JWT" \ +--issuer "https://identity.oraclecloud.com/" --active true \ +--endpoint "https://${IDCS_DOMAIN}" \ +--subject-claim-name "sub" --allow-impersonation false \ +--subject-mapping-attribute "username" \ +--subject-type "User" --client-claim-name "iss" \ +--client-claim-values '["https://identity.oraclecloud.com/"]' \ +--oauth-clients '["{IDCS_CLIENT_ID}"]' +``` \ No newline at end of file diff --git a/server/README.md b/server/README.md index f5f0171..1bdf246 100644 --- a/server/README.md +++ b/server/README.md @@ -2,7 +2,11 @@ ## Getting started -### Create IDCS domain +### Create IAM Domain + +### IAM Domain Configuration + +Follow Steps from [IAM Domain Configuration](./IAMConfig.md) document. ### Prepare server diff --git a/server/client.py b/server/client.py index 790f73d..f134257 100644 --- a/server/client.py +++ b/server/client.py @@ -29,8 +29,8 @@ async def main(): print(f"Prompts: {prompts}") # call list regions tool - result = await client.call_tool("list_regions", {}) - result = await client.call_tool("get_os_namespace", {}) + result = await client.call_tool("list_regions", {"region": "us-ashburn-1"}) + result = await client.call_tool("get_os_namespace", {"region": "us-ashburn-1"}) print(result) if __name__ == "__main__": diff --git a/server/ociaddapplication.png b/server/ociaddapplication.png new file mode 100644 index 0000000000000000000000000000000000000000..690f8d3910d18ea3c3b10e1db68e69ee6c627864 GIT binary patch literal 183418 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%0Dka4_n+-tDA%(C2Ao{Soi?MZF7G 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�yOpjHFTV!=$t%u#IZAV{kZ* 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

NlC|^ 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 RPP3H*HZM0Ew#hX-{ck|Fy^;U` literal 0 HcmV?d00001 diff --git a/server/ocieditdomainsettings.png b/server/ocieditdomainsettings.png new file mode 100644 index 0000000000000000000000000000000000000000..08812ba9b064891fd437f113c3a7372a4226eed2 GIT binary patch literal 38629 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 TN&x3>00000NkvXXu0mjfM;#j5 literal 0 HcmV?d00001 diff --git a/server/ocieditdomainsettingsbutton.png b/server/ocieditdomainsettingsbutton.png new file mode 100644 index 0000000000000000000000000000000000000000..3954dab07c1524dc0ad59caba386912dd284b64d GIT binary patch literal 69439 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%0A^5betp2>_3l_YW;jLPPJ;k7Uxa_jX#+? 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 C-Sb}n literal 0 HcmV?d00001 diff --git a/server/ocioauthconfiguration.png b/server/ocioauthconfiguration.png new file mode 100644 index 0000000000000000000000000000000000000000..f00782154883e73fa6f98e7e0e9d28a3c51839e0 GIT binary patch literal 61118 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%0Df;1!mnBLk@vA=RJj4`PzY$IL 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 VX~i~Aqj&}&@O1TaS?83{1OQzE6tVyS literal 0 HcmV?d00001 diff --git a/server/server.py b/server/server.py index ae0b941..f9d40f7 100644 --- a/server/server.py +++ b/server/server.py @@ -1,6 +1,5 @@ import os from dotenv import load_dotenv -from typing import Annotated import oci @@ -12,17 +11,27 @@ from starlette.responses import PlainTextResponse from starlette.requests import Request +# Load Environment variables from .env file load_dotenv() - +# Create .env file with IDCS_DOMAIN, IDCS_CLIENT_ID, IDCS_CLIENT_SECRET variables. +# IDCS_CLIENT_ID and IDCS_CLIENT_SECRET are from the IAM Domain OAuth2 client credentials. +# IDCS_DOMAIN is the domain name of the created IAM Domain. IDCS_DOMAIN = os.getenv("IDCS_DOMAIN") IDCS_CLIENT_ID = os.getenv("IDCS_CLIENT_ID") IDCS_CLIENT_SECRET = os.getenv("IDCS_CLIENT_SECRET") -_global_token_cache = {} -# Get an instance of signer +# Simple in-memory global cache for signers +# In production, consider using a more robust caching mechanism +_global_token_cache = {} -def get_oci_signer(token: str, tokenID: str) -> TokenExchangeSigner: +# Get an instance of OCI Token Exchange Signer +def get_oci_signer() -> TokenExchangeSigner: """Create an OCI TokenExchangeSigner using the provided token.""" + + mcp_token = get_access_token() + tokenID = mcp_token.claims.get("jti") + token = mcp_token.token + cached_signer = _global_token_cache.get(tokenID) print(f"Global cached signer: {cached_signer}") if cached_signer: @@ -35,26 +44,10 @@ def get_oci_signer(token: str, tokenID: str) -> TokenExchangeSigner: client_id=IDCS_CLIENT_ID, client_secret=IDCS_CLIENT_SECRET, ) - print(f"Signer created: {signer}") _global_token_cache[tokenID] = signer print(f"Signer cached globally for token ID: {tokenID}") - #ctx.set_state('signer', signer) - #token_storage.set(tokenID, signer, ctx) return signer -def get_identity_client() -> oci.identity.IdentityClient: - # TODO: fix hard-coded region here - # the region can be pulled from the decoded JWT (not the UPST), - # field "domain_home" - mcp_token = get_access_token() - tokenID = mcp_token.claims.get("jti") - token = mcp_token.token - #config = generate_config(token, private_key, "us-sanjose-1") - #signer = oci.auth.signers.SecurityTokenSigner(token, private_key) - signer = get_oci_signer(token, tokenID) - return oci.identity.IdentityClient(config={'region': 'us-sanjose-1'}, signer=signer) - - auth = OIDCProxy( config_url=f"https://{IDCS_DOMAIN}/.well-known/openid-configuration", client_id=IDCS_CLIENT_ID, @@ -63,27 +56,41 @@ def get_identity_client() -> oci.identity.IdentityClient: base_url="http://localhost:5000", # audience=IDCS_CLIENT_ID, required_scopes=["openid", "profile", "email"], - require_authorization_consent=False, # redirect_path="/custom/callback", ) mcp = FastMCP(name="My Server", auth=auth) @mcp.tool -async def list_regions(ctx: Context) -> str: +async def list_regions(region: str, ctx: Context) -> str: + """List all OCI regions available for the tenancy + Input: region (str) + Output: regions (str) + """ + + """Create OCI Object storage client using token exchange signer. + We will exchange IAM domain JWT token for OCI UPST token and use the UPST token to create signer object. + """ + signer = get_oci_signer() + iam_client = oci.identity.IdentityClient(config={'region': region}, signer=signer) - iam_client = get_identity_client() - print(f"Regions are {iam_client.list_regions().data}") - return iam_client.list_regions().data.__str__() + # Get the regions from the identity client + regions = iam_client.list_regions().data + print(f"Regions are {regions}") + return regions.__str__() @mcp.tool -async def get_os_namespace(ctx: Context) -> str: +async def get_os_namespace(region: str, ctx: Context) -> str: + """Get OCI Object Storage namespace for the tenancy + Input: region (str) + Output: namespace (str) + """ - token = get_access_token() - tokenID = token.claims.get("jti") - ac_token = token.token - signer = get_oci_signer(ac_token, tokenID) - region = "us-sanjose-1" + """Create OCI Object storage client using token exchange signer. + We will exchange IAM domain JWT token for OCI UPST token and use the UPST token to create signer object. + """ + + signer = get_oci_signer() object_storage_client = oci.object_storage.ObjectStorageClient(config={'region': region}, signer=signer) # Get the namespace @@ -91,6 +98,36 @@ async def get_os_namespace(ctx: Context) -> str: namespace_name = namespace_response.data return namespace_name +@mcp.tool +def whoami(ctx: Context) -> str: + """The whoami tool is to test MCP server without requiring token exchange. + This tool can be used to test successful authentication against OCI IAM. + It will return logged in user's subject (username from IAM domain).""" + + token = get_access_token() + user = token.claims.get("sub") + return f"You are User: {user}" + +@mcp.tool +async def get_token() -> str: + """This tool can be used to get logged in user's IAM domain access token.""" + + token = get_access_token() + return token.token + +@mcp.tool +async def get_access_token_claims() -> dict: + """This tool can be used to get the authenticated user's access token claims.""" + + token = get_access_token() + return { + "sub": token.claims.get("sub"), + "uid": token.claims.get("uid"), + "aud": token.claims.get("aud"), + "iss": token.claims.get("iss"), + "jti": token.claims.get("jti") + } + if __name__ == "__main__": mcp.run(transport="http", port=5000) From 8d6e3be54e8f86d38ba525fc1747684f0892cf54 Mon Sep 17 00:00:00 2001 From: kiranthakkar Date: Thu, 6 Nov 2025 22:34:20 -0800 Subject: [PATCH 4/4] Fixed Images in the Document --- server/IAMConfig.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/IAMConfig.md b/server/IAMConfig.md index 0edbd1f..4dd56c7 100644 --- a/server/IAMConfig.md +++ b/server/IAMConfig.md @@ -8,11 +8,11 @@ 4. Open Settings tab. 5. Click on "Edit Domain Settings" button. -[Edit IAM Domain Settings](./ocieditdomainsettingsbutton.png) +![Edit IAM Domain Settings](./ocieditdomainsettingsbutton.png) 6. Enable "Configure client access" checkbox as show in the screenshot. -[IAM Domain Settings](./ocieditdomainsettings.png) +![IAM Domain Settings](./ocieditdomainsettings.png) ### Create OAuth client for MCP server authentication @@ -25,7 +25,7 @@ 7. Select Launch workflow. 8. In the Add application details page, Enter name and description as shown below. -[Add Confidential Integrated Application](./ociaddapplication.png) +![Add Confidential Integrated Application](./ociaddapplication.png) 9. Once the Integrated Application is created, Click on "OAuth configuration" tab. 10. Click on "Edit OAuth configuration" button. @@ -33,7 +33,7 @@ 12. Select "Authorization code" grant type. If you are planning to use the same OAuth client application for token exchange, select "Client credentials" grant type as well. In the sample, we will use the same client. 13. For Authorization grant type, select redirect URL. This is, in most cases, will be MCP server URL followed by "/oauth/callback". -[OAuth Configuration for an Integrated Application](./ocioauthconfiguration.png) +![OAuth Configuration for an Integrated Application](./ocioauthconfiguration.png) 14. Click on "Submit" button to update OAuth configuration for the client application. **Note: You don't need to do any special configuration to support PKCE for the OAuth client.**