URI vs URN vs URL vs URC
To understand these four terms, it is best to think of URI as the "umbrella" term, while the others are specific ways of identifying or describing things.
1. URI (Uniform Resource Identifier)
A URI is the most general term. It is a string of characters used to identify a resource (like a document, image, or service) on the internet.
- Key Idea: It just needs to identify something uniquely.
- Relationship: Both URLs and URNs are types of URIs.
- Example:
https://example.com/page.html(is a URI) orurn:isbn:0451450523(is also a URI).
2. URL (Uniform Resource Locator)
A URL is a type of URI that tells you where a resource is located and how to get it (the protocol).
- Key Idea: It provides the "address" and the "method" (like HTTP or FTP).
- Structure:
protocol://domain/path - Example:
https://www.google.com(Tells you the resource is at Google and you should use the HTTPS protocol to reach it).
3. URN (Uniform Resource Name)
A URN is a type of URI that identifies a resource by a unique name that never changes, even if the resource moves to a different location.
- Key Idea: It defines what the resource is, but not where to find it. It is meant to be persistent (it doesn't "break" like a dead web link).
- Structure:
urn:namespace:identifier - Example:
urn:isbn:9780131103627(This identifies the book The C Programming Language. It doesn’t tell you which library has it; it just identifies the book itself).
4. URC (Uniform Resource Characteristic)
A URC is a largely obsolete or historical term. It refers to metadata (descriptions) about a resource.
- Key Idea: It doesn't identify the resource or tell you where it is; it tells you about the resource (its size, author, copyright, or cost).
- Status: While URIs, URLs, and URNs are standard web technology, URCs were proposed in the 1990s but never widely adopted. Today, we use things like RDF (Resource Description Framework) or JSON-LD for this purpose instead.
- Conceptual Example: A file that says "This image was created by John Doe in 2024 and is 5MB."
Summary Comparison Table
| Term | Full Name | Purpose | Analogy |
|---|---|---|---|
| URI | Uniform Resource Identifier | The general category for all identifiers. | A person's legal identity. |
| URL | Uniform Resource Locator | Specifies location and access. | A home address (tells you where to go to find them). |
| URN | Uniform Resource Name | Specifies a permanent name. | A Social Security Number (it identifies the person regardless of where they live). |
| URC | Uniform Resource Characteristic | Specifies metadata / properties. | A resume or ID card (tells you their height, hair color, and job). |
The Simplified Rule
- URI is the set.
- URL and URN are the subsets.
- URL is for addressing.
- URN is for naming.
- URC is for describing (now mostly historical).
In the AI Era: urn
The term urn:mcp is a very recent addition to the web identifier landscape, tied directly to the Model Context Protocol (MCP) introduced by Anthropic in November 2024.
1. What is urn:mcp
It emerged alongside the launch of the Model Context Protocol. MCP is an open standard designed to let AI models (like Claude or GPT) connect to external data sources and tools.
- Use Case: In the MCP ecosystem,
urn:mcpis used to uniquely identify resources, tools, or specific metadata (like "Level of Assurance" or specific IoT device types) across different servers. - Distinction: It is often used interchangeably or alongside the
mcp://URI scheme, which is typically used for the protocol’s internal transport and resource addressing.
2. Where is it registered?
urn:mcp is not yet a "Formal" URN Namespace in the official IANA registry.
- Current Status: It is currently a de-facto or informal namespace. Developers and the MCP community use it because the protocol's specification defines it, but it hasn't gone through the rigorous IETF/IANA "Formal registration" process (which requires a published RFC).
- Where it should be: Official URNs are managed by IANA (Internet Assigned Numbers Authority) in the Uniform Resource Names (URN) Namespaces registry.
3. What happens if two parties try to get the same URN?
The internet uses a "First-to-Register" system, but the rules change depending on whether the URN is registered or unregistered.
If they use it "unofficially" (unregistered):
If two different companies (e.g., Company A and Company B) both decide to use urn:mcp for completely different, non-MCP related purposes, a collision occurs.
- The Result: There is no "policing" of unregistered URNs. Software built for Company A’s implementation would break or behave unpredictably when it encounters Company B’s identifiers. This is why official registration is encouraged for global standards.
If they apply for "Formal" registration with IANA:
If two parties apply for the same NID (Namespace ID, like "mcp") at the same time:
- First-Come, First-Served: IANA generally processes applications in the order they are received.
- Expert Review: URN registrations are subject to "Expert Review" (per RFC 8141). An appointed expert will look at the applications. If one party represents the actual creator of the protocol (like Anthropic for MCP) and the other is an unrelated third party, the expert will favor the legitimate standard-setter to avoid global confusion.
- Namespace Partitioning: If both parties have legitimate but different needs for "MCP," the expert might suggest one uses a different name (e.g.,
urn:mcp-aivsurn:mcp-medical) or suggest they join forces to define a shared sub-namespace (e.g.,urn:mcp:ai:...andurn:mcp:med:...).
Summary Table: MCP Identifier Status
| Identifier | Type | Usage | Registration Status |
|---|---|---|---|
mcp:// |
URI Scheme | For protocol transport and "locating" resources. | Provisional (often reserved in specs) |
urn:mcp:... |
URN | For "naming" specific persistent entities (e.g., a specific tool ID). | De-facto / Not yet formally registered |
urn:mace |
URN | Related to middleware and education (unrelated to MCP). | Formally registered at IANA |