Initial meta MCP server scaffold
This commit is contained in:
100
README.md
Normal file
100
README.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# Meta MCP (ContextVM)
|
||||
|
||||
Meta MCP is a ContextVM server that accepts **requirements** for new MCP tools and returns a job id. It is intended to be used by other AIs that only have access to a single "meta" tool. The meta MCP then builds, deploys, and announces a new MCP server via Nostr (ContextVM).
|
||||
|
||||
This repo contains the **server-side** MCP for the meta tool. It currently implements the request + job tracking surface; the build pipeline is stubbed and will be wired to the ContextVM/CVMI deployment flow next.
|
||||
|
||||
---
|
||||
|
||||
## Goals
|
||||
|
||||
- Accept requirements for new tools
|
||||
- Create a repo/code for the new MCP server
|
||||
- Build + run the MCP server on this VPS
|
||||
- Announce the server on Nostr (ContextVM)
|
||||
- Return the **server pubkey** back to the requester
|
||||
|
||||
---
|
||||
|
||||
## Tool API
|
||||
|
||||
### `meta.request_tool`
|
||||
Request a new MCP tool/server.
|
||||
|
||||
**Input**
|
||||
```json
|
||||
{
|
||||
"requirements": [
|
||||
{
|
||||
"name": "get_current_weather_by_city",
|
||||
"description": "Returns current weather for a city",
|
||||
"inputSchema": {"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}
|
||||
}
|
||||
],
|
||||
"timeoutSeconds": 120,
|
||||
"requester": {"name":"weather-bot","pubkey":"npub1..."},
|
||||
"context": {"notes":"Need fast response"}
|
||||
}
|
||||
```
|
||||
|
||||
**Output**
|
||||
```json
|
||||
{
|
||||
"status": "building",
|
||||
"message": "Accepted. Building MCP server (pipeline stub).",
|
||||
"jobId": "<uuid>"
|
||||
}
|
||||
```
|
||||
|
||||
### `meta.job_status`
|
||||
Check a previous job.
|
||||
|
||||
**Input**
|
||||
```json
|
||||
{ "jobId": "<uuid>" }
|
||||
```
|
||||
|
||||
### `meta.jobs_recent`
|
||||
List recent jobs.
|
||||
|
||||
**Input**
|
||||
```json
|
||||
{ "limit": 10 }
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Deployment (ContextVM/CVMI)
|
||||
|
||||
This server runs via stdio. Use **cvmi serve** to expose it over Nostr.
|
||||
|
||||
Example:
|
||||
```bash
|
||||
cvmi serve -- node dist/server.js
|
||||
```
|
||||
|
||||
You can set `CVMI_SERVE_*` env vars to configure relays, encryption, and keys.
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
- Wire this server to a build/deploy pipeline
|
||||
- Add persistent storage for job state
|
||||
- Auto-create repos + scaffolds for new MCPs
|
||||
- Auto-start new MCP servers and announce via CVMI
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user