Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

The rmcp lib test target does not build without the macros feature

Closed
#1,317 1 comment 1 reaction 1 assignee View on GitHub

Maintainers usually reply within 3 days

@DaleSeo is already working on this.

Since Oct 4, 2026.

  • #1 by @itsmunzir — closed without merging
  • #1318 by @DaleSeo — open

Assessment

This issue has not been assessed yet.

Description

bug P2 ready for work T-model T-test

object! is #[macro_export]ed and documented from model.rs:42, but model.rs:60 puts it behind the macros feature, so it is unreachable in a --no-default-features build. The lib test target is where that shows on 8f9a28e: four unit tests call the macro.

$ cd /tmp/rmcp-main && cargo check -p rmcp --lib --no-default-features --profile test
# rustc 1.96.1 (31fca3adb 2026-06-26), the pinned rust-toolchain.toml, on 8f9a28e
error: cannot find macro `object` in this scope
    --> crates/rmcp/src/model.rs:5529:17
note: `object` is imported here, but it is a function, not a macro
    --> crates/rmcp/src/model.rs:4837:9
error: could not compile `rmcp` (lib test) due to 4 previous errors   # :5459 :5488 :5503 :5529

$ cargo check -p rmcp --lib --no-default-features --features macros --profile test
    Finished `test` profile [unoptimized + debuginfo] target(s) in 7.63s

# same export, `#[cfg(feature = "macros")]` deleted from model.rs:60, nothing else touched
$ cargo test -p rmcp --lib --no-default-features
    test result: ok. 139 passed; 0 failed; 0 ignored
# not run: the integration targets under crates/rmcp/tests, and any host other than Linux

The expansion is serde_json::json! around the ungated model::object function, serde_json is a plain dependency, and macros is dep:rmcp-macros + dep:pastey. Deleting the gate is the one-line option. Keeping it means object(json!({ ... })) at the four call sites, or a #[cfg(feature = "macros")] on the four #[test] functions.

Dropping --lib fails too, in 13 integration targets, on missing server/client items. Different cause, and none of the above fixes it.

@DaleSeo, the feature-matrix job on feat/rationalize-feature-flags (#1067) runs cargo check, which never builds a test target, and ci.yml:268 and :302 both enable macros. Would --profile test on that job, or a cargo test -p rmcp --lib --no-default-features line beside it, be the right home for this?

Dominant language
Rust
Stars
4k
Forks
654
Avg merge
4d 2h
Merged PRs (30d)
40

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from modelcontextprotocol/rust-sdk

All issues in modelcontextprotocol/rust-sdk

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.