Problem: Every AI app wants you to paste your OpenAI/Anthropic key. Keys spread across dozens of apps with zero visibility, and you can only revoke by rotating the key itself.
Proposal: OKAP (Open Key Access Protocol) - like OAuth, but for API keys.
How it works:
1. Keys stay in YOUR vault (self-host or hosted)
2. Apps request access via token (scoped to provider, models, expiry)
3. Vault proxies requests - apps never see your actual key
4. Revoke any app instantly without touching your master key
Not to be confused with LiteLLM/OpenRouter (those are proxies you pay for). OKAP is a protocol for user-owned key management - your keys, your vault, your control.
Hey folks! I just launched https://mcphost.link/ a web-based MCP host that lets you connect to multiple remote MCP servers and interact with them through a simple chat-style interface.
Key Features
Multi-server support — connect to several MCP servers at once
SEP-1865 MCP Apps Extension, even though in draft currently, will change how AI agents deliver
interactive experiences.
The idea: MCP tools return HTML/CSS/JS directly. The client renders it in a sandboxed iframe. That's it.
Your AI agent calls a tool, gets back a full interactive UI. Dashboard, form, chart - whatever you need.
How it works:
- Tool returns text/html+mcp resource
- Client renders in iframe with CSP
- UI talks back via JSON-RPC 2.0 postMessage
- Fully sandboxed, secure by default
Built a sample implementation with vanilla Web Components. This is where MCP is heading.
I got tired of complex agent frameworks with their orchestrators and YAML configs, so I built something simpler.
AgentU uses two operators for workflows: >> chains steps, & runs parallel. That's it.
```
from agentu import Agent, serve
import asyncio
def search(topic: str) -> str:
return f"Results for {topic}"
# Agent auto-detects available model, connects to authenticated MCP server
agent = Agent("researcher").with_tools([search]).with_mcp([
{"url": "http://localhost:3000", "headers": {"Authorization": "Bearer token123"}}
])
# Memory
agent.remember("User wants technical depth", importance=0.9)
# Parallel then sequential: & runs parallel, >> chains
workflow = (
agent("AI") & agent("ML") & agent("LLMs")
>> agent(lambda prev: f"Compare: {prev}")
)
# Execute workflow
result = asyncio.run(workflow.run())
# REST API with auto-generated Swagger docs
serve(agent, port=8000)
```
Features:
- Auto-detects Ollama models (also works with OpenAI, vLLM, LM Studio)
- Memory with importance weights, SQLite backend
- MCP integration with auth support
- One-line REST API with Swagger docs
- Python functions are tools, no decorators needed
Using it for automated code review, parallel data enrichment, research synthesis.
pip install agentu
GitHub: https://github.com/hemanth/agentu
Open to feedback.