Skip to main content
Glama

MCP Specification Server

by MCPJam
23
6
  • Apple
README.md•2.67 kB
# uri-templates URI Templates ([RFC6570](http://tools.ietf.org/html/rfc6570)) in JavaScript, including de-substitution. It is tested against the [official test suite](https://github.com/uri-templates/uritemplate-test), including the extended tests. The "de-substitution" extracts parameter values from URIs. It is also tested against the official test suite (including extended tests). ## Creation In Node: ```javascript var uriTemplates = require('uri-templates'); var template1 = uriTemplates("/date/{colour}/{shape}/"); ``` In browser: ```javascript var template2 = new UriTemplate("/prefix/{?params*}"); ``` ## Substitution using an object ```javascript // "/categories/green/round/" var uri1 = template1.fill({colour: "green", shape: "round"}); // "/prefix/?a=A&b=B&c=C var uri2 = template2.fillFromObject({ params: {a: "A", b: "B", c: "C"} }); ``` ## Substitution using a callback ```javascript // "/categories/example_colour/example_shape/" var uri1b = template1.fill(function (varName) { return "example_" + varName; }); ``` ## Guess variables from URI ("de-substitution") ```javascript var uri2b = "/prefix/?beep=boop&bleep=bloop"; var params = template2.fromUri(url2b); /* { params: { beep: "boop", bleep: "bloop" } } */ ``` While templates can be ambiguous (e.g. `"{var1}{var2}"`), it will still produce *something* that reconstructs into the original URI. It can handle all the cases in the official test suite, including the extended tests: ```javascript var template = uriTemplate("{/id*}{?fields,token}"); var values = template.fromUri("/person/albums?fields=id,name,picture&token=12345"); /* { id: ["person", 'albums"], fields: ["id", "name", "picture"], token: "12345" } */ ``` ### `strict` option Sometimes, you might want a more exact match, instead of a best guess. For example, this could be useful when using URI Templates for routing. The `strict` option performs more checks, to see whether the URI being matched is plausible: ```javascript var template = uriTemplate("/prefix/{value}/{suffix}"); // Matches, even though "foo/bar" contains a "/" which is not allowed var looseMatch = template.fromUri('/prefix/foo/bar/suffix'); // Does not match var strictMatch = template.fromUri('/prefix/foo/bar/suffix', {strict: true}); ``` ## Test URI ```javascript var uri2b = "/prefix/?beep=boop&bleep=bloop"; var isMatch = template2.test(url2b); // === true ``` This returns a boolean, and takes the same options as `.fromUri()`. ## License This project is released as [public-domain](http://geraintluff.github.io/tv4/LICENSE.txt). Anybody can modify or re-license it for any purpose, without restriction.

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/MCPJam/mcp-spec'

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