Skip to main content
Glama

FastMCP Todo Server

verify_token.py1.37 kB
import json from urllib.request import urlopen from jose import jwt class VerifyToken: """Does all the token verification using PyJWT""" def __init__(self, auth0_domain, api_audience): self.auth0_domain = auth0_domain self.api_audience = api_audience self.jwks = None def verify(self, token): self._get_jwks() unverified_header = jwt.get_unverified_header(token) rsa_key = self._find_rsa_key(unverified_header) if rsa_key: return jwt.decode( token, rsa_key, algorithms=["RS256"], audience=self.api_audience, issuer=f"https://{self.auth0_domain}/" ) raise Exception("Unable to find appropriate key") def _get_jwks(self): if self.jwks is None: jsonurl = urlopen(f"https://{self.auth0_domain}/.well-known/jwks.json") self.jwks = json.loads(jsonurl.read()) def _find_rsa_key(self, unverified_header): for key in self.jwks["keys"]: if key["kid"] == unverified_header["kid"]: return { "kty": key["kty"], "kid": key["kid"], "use": key["use"], "n": key["n"], "e": key["e"] } return None

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MadnessEngineering/fastmcp-todo-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server