MCP OneNote Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP OneNote Servershow my notebooks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP OneNote Server
Un serveur Model Context Protocol (MCP) pour Microsoft OneNote, permettant à des agents IA comme Claude Desktop de lire, créer et analyser des notebooks, sections et pages OneNote — y compris l'extraction automatique du contenu des images via Claude Vision.
✨ Fonctionnalités
📒 Lister les notebooks, sections et pages
📄 Lire le contenu HTML des pages
🖼️ Extraire le texte des images embarquées via Claude Vision (nouveau !)
✏️ Créer des notebooks, sections et pages
🔐 Authentification via Azure AD Device Code Flow
Related MCP server: OneNote MCP Server
🧰 Prérequis
Un compte Microsoft (personnel ou professionnel)
Une clé API Anthropic (console.anthropic.com)
🚀 Installation étape par étape
Étape 1 — Cloner le projet
git clone https://github.com/FRESHSK/mcp_onenote.git
cd mcp_onenote_01
npm installÉtape 2 — Créer une App Azure AD (une seule fois)
Cette étape permet d'obtenir un Client ID pour accéder à l'API Microsoft Graph.
Aller sur Azure Portal - App Registrations
Cliquer "New registration"
Remplir le formulaire :
Name :
MCP OneNoteSupported account types : choisir la 3ème option (Multitenant + personal Microsoft accounts)
Redirect URI :
Public client/native→http://localhostCliquer Register
Activer les flux publics :
Menu gauche → Authentication
Scroll bas → Advanced settings
Allow public client flows → Yes
Cliquer Save
Copier l'Application (client) ID depuis Overview
Étape 3 — Ajouter les permissions Microsoft Graph API
Après avoir créé l'app Azure AD, tu dois accorder les permissions nécessaires pour accéder à OneNote.
Dans le Azure Portal, aller sur ton App Registration
Menu gauche → API permissions
Cliquer "Add a permission"
Choisir Microsoft Graph
Choisir Delegated permissions
Rechercher et cocher les permissions suivantes :
Permission | Description |
| Lire le profil de l'utilisateur connecté |
| Lire les notebooks OneNote |
| Créer des notebooks et pages |
| Lire et modifier les notebooks OneNote |
Cliquer "Add permissions"
Cliquer "Grant admin consent for ..." (si tu es admin) puis confirmer
ℹ️ Si tu n'es pas admin, les permissions seront accordées lors de la première connexion via Device Code Flow.
Résultat attendu dans Azure Portal :
✅ User.Read (Delegated) - Granted
✅ Notes.Read (Delegated) - Granted
✅ Notes.Create (Delegated) - Granted
✅ Notes.ReadWrite (Delegated) - GrantedÉtape 4 — Configurer les variables d'environnement
cp .env.example .envÉditer .env :
MICROSOFT_CLIENT_ID=ton-client-id-azure
MICROSOFT_TENANT_ID=common
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxx
TOKEN_CACHE_PATH=./token_cache.json⚠️ Ne jamais committer le fichier
.env— il est dans.gitignore
Étape 5 — Première authentification Microsoft
Le serveur a besoin d'un token Microsoft pour accéder à OneNote. Lance ce script une fois :
node debug_auth.jsTu verras dans le terminal :
To sign in, use a web browser to open the page
https://microsoft.com/devicelogin and enter the code XXXXXXXXEntrer le code affiché dans le terminal
Se connecter avec ton compte Microsoft
Un fichier
token_cache.jsonsera créé automatiquement
✅ Cette étape n'est nécessaire qu'une seule fois. Le token se renouvelle automatiquement.
Étape 6 — Configurer Claude Desktop
Éditer le fichier claude_desktop_config.json de Claude Desktop :
Windows :
C:\Users\<user>\AppData\Roaming\Claude\claude_desktop_config.jsonMac :
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"onenote": {
"command": "node",
"args": [
"C:\\chemin\\absolu\\vers\\mcp_onenote_01\\server.js"
],
"env": {
"TOKEN_CACHE_PATH": "C:\\chemin\\absolu\\vers\\mcp_onenote_01\\token_cache.json"
}
}
}
}⚠️ Le
TOKEN_CACHE_PATHabsolu est important pour que Claude Desktop trouve le bon fichier de token.
Étape 7 — Redémarrer Claude Desktop
Fermer et relancer Claude Desktop. Le MCP OneNote sera disponible.
🛠️ Outils disponibles
Outil | Description | Paramètres |
| Liste tous les notebooks | — |
| Liste les sections d'un notebook |
|
| Liste les pages d'une section |
|
| Lit le contenu d'une page (texte + images) |
|
| Crée un nouveau notebook |
|
| Crée une nouvelle section |
|
| Crée une nouvelle page |
|
🖼️ Extraction d'images (Claude Vision)
Quand extract_images: true (par défaut), le tool read_content :
Parse le HTML de la page
Détecte les balises
<img>pointant vers l'API GraphFetche chaque image avec le token Bearer Microsoft
Envoie l'image à Claude Vision pour extraire le contenu textuel
Retourne le texte + le contenu extrait de chaque image
Pour désactiver cette fonctionnalité :
read_content(pageId: "...", extract_images: false)📁 Structure du projet
mcp_onenote_01/
├── server.js # Serveur MCP principal
├── debug_auth.js # Script d'authentification initiale
├── .env # Variables d'environnement (non commité)
├── .env.example # Template des variables d'environnement
├── .gitignore # Fichiers ignorés par Git
├── claude_desktop_config.json # Exemple de config Claude Desktop
├── token_cache.json # Cache du token MSAL (non commité)
└── package.json # Dépendances Node.js📦 Dépendances principales
Package | Usage |
| Serveur MCP |
| Authentification Microsoft |
| Claude Vision pour les images |
| Requêtes HTTP |
| Variables d'environnement |
🔒 Sécurité
Le fichier
.envcontenant les clés est dans.gitignoreLe
token_cache.jsoncontenant les tokens Microsoft est dans.gitignoreNe jamais committer de clés API ou de tokens dans GitHub
🐛 Dépannage
Le MCP ne répond pas dans Claude Desktop ?
→ Vérifier les logs : AppData\Roaming\Claude\logs\mcp-server-onenote.log
Le token expire et redemande l'authentification ?
→ S'assurer que TOKEN_CACHE_PATH pointe vers le bon chemin absolu dans claude_desktop_config.json
→ Relancer node debug_auth.js pour renouveler le token
Erreur media_type sur les images ?
→ Le code normalise automatiquement vers image/png si le type n'est pas supporté par l'API Anthropic
📝 Licence
MIT
Available Tools
7 toolscreate_notebookB
Create a new OneNote notebook
| Name | Required | Description | Default |
|---|---|---|---|
| displayName | Yes | Name of the new notebook |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of disclosing behavioral traits. It only states 'create a new OneNote notebook' without mentioning side effects, permissions, default storage location, or whether the operation is idempotent. This is minimal and lacks the context an agent might need for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly one sentence with no filler or redundancy. Every word contributes to the meaning, and the action verb is front-loaded. Perfectly concise for a tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, fully documented schema), the description is minimally adequate for invocation. However, it omits the return value or any side-effect context such as where the notebook is created. An agent could call it correctly, but would lack context about the expected result or potential errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage for the single parameter displayName is 100%, so the schema fully documents the parameter meaning. The description adds no additional semantic nuance beyond what the schema already provides. A baseline score of 3 is appropriate due to high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'create' and a clear resource 'OneNote notebook', immediately distinguishing it from sibling tools like create_section and create_page by target hierarchy level. Even without the tool name, the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool instead of e.g., create_section or create_page. There are no explicit when-to-use scenarios, preequisites, or alternatives mentioned. The only implied usage is the basic action of creating a notebook.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pageA
Create a new page in a section
| Name | Required | Description | Default |
|---|---|---|---|
| sectionId | Yes | ID of the section | |
| htmlContent | Yes | HTML content of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It communicates that this is a mutating creation operation, but it does not disclose side effects, idempotency, permission requirements, or return behavior. It is not misleading, but it is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no filler or repetition. It is front-loaded and efficient, earning every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter create tool, the schema and description allow basic invocation. However, there is no mention of the return value, the requirement that the target section already exists, or any error behavior, and there is no output schema to fill those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description does not add meaningful parameter semantics beyond the phrase 'in a section', so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('a new page'), and the location ('in a section'). It differentiates from sibling tools like create_notebook and create_section by the explicit resource type and container.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use this when a new page must be added to a section. However, it does not explicitly say when to choose this over create_section or create_notebook, nor does it mention prerequisites such as requiring an existing section.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sectionA
Create a new section in a notebook
| Name | Required | Description | Default |
|---|---|---|---|
| notebookId | Yes | ID of the notebook | |
| displayName | Yes | Name of the new section |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the create action and does not mention side effects, idempotency, prerequisite notebook existence, duplicate behavior, or return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single direct sentence with no wasted words. It is front-loaded and immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter create operation with fully documented schema, the description is minimally sufficient to invoke the tool. However, there is no output schema and no information about response format or edge-case behavior, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters fully with descriptions covering 100% of the parameters. The description adds nothing beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Create a new section in a notebook.' It clearly distinguishes this from sibling tools like create_notebook, create_page, and list_sections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the purpose: use it when creating a section in a notebook. However, it provides no explicit guidance about when not to use it or how it compares to create_page or other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notebooksA
List all OneNote notebooks
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It clearly communicates a read-only listing operation with no filtering, which is useful. However, it does not disclose return format, authentication needs, or ordering/pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean, front-loaded sentence with no fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, low-complexity listing tool, the description is adequate for selection and invocation. It omits return-field details and does not connect the result to downstream sibling calls, but these are minor gaps for this simple tool type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema shows zero parameters and 100% coverage, so there are no parameter semantics to explain. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List all OneNote notebooks'. Clearly distinguishes from siblings like list_sections and list_pages, which target lower-level resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or mention of alternatives. The phrase 'List all' implies this is the entry point for enumerating notebooks, and sibling names suggest the hierarchy, but that is implicit rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pagesA
List pages in a section
| Name | Required | Description | Default |
|---|---|---|---|
| sectionId | Yes | The ID of the section |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'List pages' and does not mention what is returned (page metadata vs. content), ordering, pagination, or any side effects. This is a minimal operational statement rather than a transparent behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler. Every word contributes to the meaning, and the core action and scope are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one required parameter, and the schema covers that parameter fully. However, there is no output schema and no description of what 'pages' means in the response, so the agent must infer the return shape and behavior from the tool name alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the sectionId parameter is already described as 'The ID of the section.' The description's 'in a section' adds slight contextual confirmation but no substantive meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List'), the resource ('pages'), and the scope ('in a section'). This distinguishes it from sibling tools like list_notebooks and list_sections, which are about different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in a section' makes the usage context clear: this tool is appropriate when the agent has a specific section and wants its pages. It does not explicitly compare itself to alternatives or state when not to use it, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sectionsB
List sections in a notebook
| Name | Required | Description | Default |
|---|---|---|---|
| notebookId | Yes | The ID of the notebook |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It accurately describes a read-only listing operation, but does not disclose any potential behaviors such as whether only top-level sections are listed, ordering, pagination, or whether empty notebooks return an empty list. Since the operation seems simple, a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, clear sentence that communicates the primary purpose without redundancy. It is appropriately minimal, though it could add a brief note about usage context without much cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with one required parameter fully described in the schema, the description is mostly complete. However, absence of any behavior details (e.g., what constitutes a section, whether nested sections are included) and no output schema means the agent has minimal expectations beyond the call itself. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with notebookId described as 'The ID of the notebook'. The description does not add further parameter semantics, but the schema already sufficiently explains the only parameter. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List sections in a notebook' states a clear verb ('List') and resource ('sections in a notebook'), distinguishing it from sibling tools like list_notebooks and list_pages. It could be slightly more explicit about the notebook context, but it is readily understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a user wants to enumerate sections within a specific notebook, and the required notebookId parameter confirms this. However, it does not explicitly state when to use this tool versus list_pages or read_content, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_contentA
Read the HTML content of a page
| Name | Required | Description | Default |
|---|---|---|---|
| pageId | Yes | The ID of the page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the transparency burden. It does signal a non-destructive read and specifies the resource type (HTML content), which is useful. However, it does not disclose any additional behavioral traits such as whether the full HTML document is returned, error handling, or authentication/rate-limit implications. For a simple read tool this is minimal but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. The operation (read) and the resource (HTML content of a page) are front-loaded, and every word contributes to the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-required-parameter read tool with no output schema, the description is nearly complete. It communicates what the tool does and what it returns ('HTML content'), which is sufficient for an agent to invoke it correctly. The main gap is a lack of explicit response format or edge-case context, but the tool's low complexity makes this a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the pageId parameter is described as 'The ID of the page'. The tool description adds no extra meaning about the parameter beyond what the schema already states, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Read the HTML content of a page' uses a specific verb and resource, clearly distinguishing itself from sibling tools like list_pages (which lists pages) and create_page (which creates pages). It states exactly what operation the tool performs without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use this tool when you need the HTML content of a specific page. However, it does not explicitly contrast it with list_pages or mention that a pageId is typically obtained from a listing operation first. No exclusions or alternative routing are provided, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource and action: notebooks, sections, pages, and page content are clearly separated. The hierarchy is obvious from the names and descriptions, so an agent should rarely confuse one tool with another.
Most tools follow a consistent verb_noun pattern such as list_notebooks and create_page. read_content is a slight departure since it refers to a page action but does not include 'page' in the name, though it remains clear and readable.
Seven tools is well-scoped for a OneNote MCP server focused on navigating and creating notebooks, sections, and pages. Each tool covers a necessary operation without redundancy or bloat.
The create and read/list side of the domain is covered well, but there are no update or delete operations for notebooks, sections, or pages. This creates notable gaps for editing or cleaning up content, though basic browsing and creation workflows are functional.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search, read, create and edit your Memol notes from Claude. Team note-taking with AI search.
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Create, search, and update notes in an xNotepad AI notebook, with semantic search and AI Q&A.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI language models to interact with Microsoft OneNote via a standardized interface, supporting notebook and page management through natural language.4326MIT
- FlicenseAqualityDmaintenanceEnables Claude to read and write to local Microsoft OneNote notebooks by parsing backup files and utilizing the OneNote COM API. It allows for searching notes, creating pages, and appending content without requiring Azure registration or API keys.103
- AlicenseDqualityCmaintenanceEnables AI assistants to securely interact with Microsoft OneNote data through the Microsoft Graph API. It supports comprehensive management tasks including searching page content, creating and editing notes, and automating productivity workflows like daily note creation.203MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to read, write, and manage Microsoft OneNote notebooks, sections, and pages through OAuth-authenticated MCP tools, resources, and prompts.16255MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/FRESHSK/mcp_onenote'
If you have feedback or need assistance with the MCP directory API, please join our Discord server