search_notes
Doorzoekt paginatitels en een begrensde preview-scan van recente pagina's op trefwoorden.
- query
- tekst, 2–200 tekens
- limit
- 1–10 resultaten, standaard 8
Voor beheerders en ontwikkelaars
Precies wat NoteBuddy kan opvragen, hoe het zoeken werkt, wat het (nog) niet kan en hoe je OAuth-fouten oplost.
Vijf tools zijn read-only. Twee tools kunnen schrijven, maar uitsluitend additief: append_to_page voegt toe aan het einde van een bestaande pagina, create_page maakt een nieuwe pagina aan. Geen van beide kan bestaande inhoud overschrijven of verwijderen — er zijn geen update_page- of delete_page-tools.
search_notesDoorzoekt paginatitels en een begrensde preview-scan van recente pagina's op trefwoorden.
list_notebooksGeeft je beschikbare OneNote-notitieblokken terug.
list_sectionsGeeft de secties van een notitieblok terug, of van alle notitieblokken als er geen ID is opgegeven.
list_pagesGeeft de pagina's binnen één sectie terug.
get_pageHaalt de platte tekstinhoud van één pagina op, tot een ingesteld maximum.
Geeft contentTruncated: true terug zodra een pagina langer is dan maxChars, zodat je assistent weet dat er meer tekst bestaat dan getoond.
append_to_page NieuwVoegt HTML-inhoud toe aan het einde van een bestaande pagina. Overschrijft of verwijdert nooit bestaande inhoud.
create_page NieuwMaakt een nieuwe pagina aan in een sectie met een titel en HTML-inhoud. Maakt altijd een nieuwe pagina — twee keer aanroepen geeft twee pagina's.
Belangrijk om te weten voordat je een vraag stelt:
search_notes vergelijkt de woorden uit je vraag met paginatitels en een preview van de inhoud. Er zit geen taalmodel, embedding of vectordatabase tussen — de service "begrijpt" je vraag niet, hij matcht tekst.list_sections/list_pages om gerichter te bladeren als je notitieblok groot is.append_to_page en create_page. Een bestaande pagina volledig aanpassen of wissen kan niet.mcp-remote-bridge is nog niet volledig gevalideerd — gebruik de bridge-configuratie op de koppelpagina.mcp-remote-bridge op de koppelpagina.De MCP-server controleert bij elk verzoek maar één ding: staat access_as_user in de scp-claim van het token? Alle andere scopes die je bij het koppelen kunt opgeven, zijn optioneel en dienen een ander doel.
api://6d98c49c-b21c-461c-8ca1-66e23c043162/access_as_user
De enige scope die NoteBuddy daadwerkelijk verifieert voordat een tool-aanroep wordt toegestaan.
Verplicht
offline_access
Geeft een refresh token, zodat de client niet telkens opnieuw hoeft in te loggen. De server controleert dit niet — puur voor het gemak van de gebruiker.
Optioneel
openid / profile
Alleen nodig voor ChatGPT's OIDC-koppeling ("authorization domain claiming" via e-mail). NoteBuddy zelf gebruikt deze claims niet.
Optioneel
Downstream vraagt de server zelf, los van wat de client aanvraagt, altijd https://graph.microsoft.com/.default op via een on-behalf-of-uitwisseling — dat pakt automatisch de Graph-permissie Notes.ReadWrite die al op de app-registratie staat. Dit heeft geen invloed op welke scopes jouw client bij het inloggen moet aanvragen.
Let op: de mcp-remote-bridge voor Claude Desktop op de koppelpagina vraagt bewust alleen access_as_user aan — dat werkt, maar betekent geen refresh token en dus vaker opnieuw inloggen.
Was je al eerder org-breed geconsenteerd toen NoteBuddy nog Notes.Read gebruikte? Die toestemming dekt Notes.ReadWrite niet automatisch — een beheerder moet de organisatiebrede toestemmingslink opnieuw doorlopen.
NoteBuddy gebruikt een multitenant Entra-app met een on-behalf-of-uitwisseling naar Microsoft Graph. Dat maakt deze foutmeldingen het meest waarschijnlijk:
AADSTS50011 — redirect URI mismatchDe callback-URL die je client (ChatGPT, browser) gebruikt, staat niet exact geregistreerd bij de Entra app-registratie. Dit speelt met name bij de beheerderstoestemming-link: de redirect_uri (bijvoorbeeld https://jouw-domein/admin-consent-success) moet letterlijk onder App registrations → NoteBuddy → Authentication → Web → Redirect URIs staan, inclusief het schema (https) en zonder afwijkende trailing slash.
AADSTS65001 — toestemming vereist maar niet verleendDe gebruiker of tenant heeft nog geen consent gegeven voor NoteBuddy. Vraag een gebruiker het opnieuw te proberen en toestemming te accepteren, of laat een beheerder organisatiebrede toestemming geven zodat individuele consent niet meer nodig is.
Sommige organisaties zetten gebruikersconsent standaard uit (Entra → Enterprise applications → Consent and permissions). In dat geval faalt de individuele login altijd, ongeacht wat de gebruiker doet — alleen een beheerder kan dit oplossen via de organisatiebrede toestemmingslink.
NoteBuddy valideert per tenant de JWT-handtekening, issuer en audience. Een token dat voor een andere audience (bijvoorbeeld rechtstreeks voor Microsoft Graph) is uitgegeven in plaats van voor de NoteBuddy-app-ID, wordt geweigerd. Controleer dat de client de juiste resource/scope gebruikt zoals beschreven op de koppelpagina.
Sommige MCP-clients (waaronder VS Code's ingebouwde HTTP-verbinding) proberen na het lezen van de discovery-metadata alsnog een /authorize-aanroep te doen op het eigen adres van de MCP-server in plaats van bij Microsoft Entra. Dit gebeurt wanneer de client Entra's OpenID Connect-discoverydocument niet correct kan vinden op het generieke OAuth-pad dat hij verwacht. NoteBuddy implementeert zelf geen autorisatieserver — er bestaat geen /authorize-route op de NoteBuddy-URL. Gebruik in dat geval de mcp-remote-bridge in plaats van de directe HTTP-verbinding, zoals beschreven bij VS Code op de koppelpagina.
Bouw je zelf een MCP-client tegen deze server? Het protected-resource metadata-document beschrijft machine-leesbaar welke autorisatieserver, resource-indicator en scopes NoteBuddy verwacht, volgens RFC 9728.
https://notebuddy-skills4it.bravecliff-748c4631.westeurope.azurecontainerapps.io/.well-known/oauth-protected-resource
De MCP-server zelf staat op /mcp en vereist een geldig bearer-token; een servicestatus-endpoint zonder authenticatie is beschikbaar op /health.